Wie wird utf-8 in der Windows-Konsole angezeigt?

Ich verwende Python 2.6 unter Windows 7

Ich habe Code von hier ausgeliehen:Python, Unicode und die Windows-Konsole

Mein Ziel ist es, in der Windows-Konsole 8-Zeichenfolgen anzuzeigen.

Apparantly in Python 2.6, die

sys.setdefaultencoding ()

wird nicht mehr unterstützt

Ich habe jedoch reload (sys) geschrieben, bevor ich versucht habe, es zu verwenden, und es hat auf magische Weise keinen Fehler gemacht.

Dieser Code wird NICHT fehlerhaft sein, zeigt jedoch lustige Zeichen anstelle von japanischem Text.ch glaube, das Problem liegt daran, dass ich die Codepage der Windows-Konsole nicht erfolgreich geändert hab

Dies sind meine Versuche, aber sie funktionieren nicht:

reload(sys)
sys.setdefaultencoding('utf-8')

print os.popen('chcp 65001').read()

sys.stdout.encoding = 'cp65001'

Vielleicht können Sie win32console verwenden, um die Codepage zu ändern? Ich habe versucht, den Code von der Website, die ich verlinkt habe, zu verwenden, aber es ist auch ein Fehler von der win32console aufgetreten. Vielleicht ist dieser Code veraltet.

Hier ist mein Code, der keinen Fehler macht, sondern lustige Zeichen ausgibt:

#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()

Antworten auf die Frage(8)

Ihre Antwort auf die Frage