Я использую Python 2.6 в Windows 7
Я позаимствовал код здесь:
Python, Unicode и консоль Windows
Моя цель - отображать строки uft-8 в консоли Windows.
Очевидно в Python 2.6,
sys.setdefaultencoding ()
больше не поддерживается
Однако я написал reload (sys), прежде чем пытался его использовать, и он волшебным образом не выдал ошибку.
Этот код НЕ будет ошибкой, но вместо японского текста он показывает забавные символы.
Я считаю, что проблема в том, что я не изменил кодовую страницу консоли Windows.
Это мои попытки, но они не работают:
reload(sys)
sys.setdefaultencoding('utf-8')
print os.popen('chcp 65001').read()
sys.stdout.encoding = 'cp65001'
Возможно, вы можете использовать win32console для изменения кодовой страницы?
Я пробовал код с сайта, на который я ссылался, но он также ошибался из win32console ... возможно, этот код устарел.
Вот мой код, который не содержит ошибок, но печатает забавные символы:
#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()