Я работаю над приложением python, которое может печатать текст на нескольких языках в консоли на нескольких платформах. Программа хорошо работает на всех платформах UNIX, но в Windows есть ошибки, печатающие строки unicode в командной строке.
Там уже есть соответствующая тема: (Изменение кодировки Windows cmd вызывает сбой Python) но я не мог найти там своего конкретного ответа.
Например, для следующего азиатского текста в Linux я могу запустить:
>>> print u"\u5f15\u8d77\u7684\u6216".encode("utf-8")
引起的或
Но в окнах я получаю:
>>> print u"\u5f15\u8d77\u7684\u6216".encode("utf-8")
σ╝ץΦ╡╖τתהµטצ
Мне удалось отобразить правильный текст с полем сообщения при выполнении чего-то подобного:
>>> file("bla.vbs", "w").write(u'MsgBox "\u5f15\u8d77\u7684\u6216", 4, "MyTitle"'.encode("utf-16"))
>>> os.system("cscript //U //NoLogo bla.vbs")
Но я хочу иметь возможность делать это в консоли Windows и, желательно, - не требуя слишком большой конфигурации вне моего кода на Python (потому что мое приложение будет распространено на многие хосты).
Возможно ли это?
Изменить: Если это невозможно - я был бы рад принять некоторые другие предложения по написанию консольного приложения в окнах, отображающих unicode, например. реализация python альтернативной консоли Windows