J'utilise Python 2.6 sous Windows 7.
J'ai emprunté un peu de code ici : Python, Unicode et la console Windows
Mon objectif est de pouvoir afficher des chaînes de caractères uft-8 dans la console Windows.
Apparemment, dans python 2.6, la fonction
sys.setdefaultencoding()
n'est plus pris en charge
Cependant, j'ai écrit reload(sys) avant d'essayer de l'utiliser et, comme par magie, il n'y a pas eu d'erreur.
Ce code ne provoque PAS d'erreur, mais il affiche des caractères amusants à la place du texte japonais. Je pense que le problème vient du fait que je n'ai pas réussi à changer la page de code de la console Windows.
Ce sont mes tentatives, mais elles ne fonctionnent pas :
reload(sys)
sys.setdefaultencoding('utf-8')
print os.popen('chcp 65001').read()
sys.stdout.encoding = 'cp65001'
Peut-être pouvez-vous utiliser win32console pour changer la page de code ? J'ai essayé le code du site que j'ai cité en lien, mais il a également erré à partir de la win32console peut-être que ce code est obsolète.
Voici mon code, qui ne provoque pas d'erreur mais imprime des caractères bizarres :
#coding=<utf8>
import os
import sys
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
sys.stdout = codecs.getwriter('utf8')(sys.stdout)
sys.stderr = codecs.getwriter('utf8')(sys.stderr)
#print os.popen('chcp 65001').read()
print(sys.stdout.encoding)
sys.stdout.encoding = 'cp65001'
print(sys.stdout.encoding)
x = raw_input('press enter to continue')
a = ''#.decode('utf8')
print a
x = raw_input()