Я использую 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()