yon*_*nix 12 python windows unicode encoding
我正在开发一个python应用程序,可以在多个平台上以多种语言将文本打印到控制台.该程序适用于所有UNIX平台,但在Windows中,在命令行中打印unicode字符串时出错.
已经有一个相关的线程:( Windows cmd编码更改导致Python崩溃)但我找不到我的具体答案.
例如,对于以下亚洲文本,在Linux中,我可以运行:
>>> print u"\u5f15\u8d77\u7684\u6216".encode("utf-8")
????
Run Code Online (Sandbox Code Playgroud)
但在Windows中,我得到:
>>> print u"\u5f15\u8d77\u7684\u6216".encode("utf-8")
?????????µ??
Run Code Online (Sandbox Code Playgroud)
在做类似的事情时,我成功地用消息框显示正确的文本:
>>> file("bla.vbs", "w").write(u'MsgBox "\u5f15\u8d77\u7684\u6216", 4, "MyTitle"'.encode("utf-16"))
>>> os.system("cscript //U //NoLogo bla.vbs")
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够在Windows控制台中完成它,并且最好 - 在我的python代码之外不需要太多配置(因为我的应用程序将分发给许多主机).
这可能吗?
编辑:如果不可能 - 我很乐意接受在Windows中显示unicode编写控制台应用程序的其他一些建议,例如另一个Windows控制台的python实现
Joh*_*nck -2
您可以尝试iconv在 Windows 上使用该程序,并通过它传输 Python 输出吗?事情会是这样的:
python foo.py | iconv -f utf-8 -t utf-16
Run Code Online (Sandbox Code Playgroud)
您可能需要做一些工作才能进入iconvWindows——它是 Cygwin 的一部分,但如果需要的话您可以以某种方式单独构建它。