Как отобразить utf-8 в консоли Windows
Я использую 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()