【发布时间】:2012-09-02 01:12:26
【问题描述】:
我想将一组 Unicode 字符打印到我的命令提示符终端。即使我强制编码为“UTF-8”,终端也会打印一些垃圾。
$python -c "import sys; print sys.stdout.write(u'\u2044'.encode('UTF-8'))"
ΓüäNone
$python -c "import sys; print sys.stdout.encoding"
cp437
我的默认终端编码是 cp437,我正在尝试覆盖它。这里的预期输出是分数斜线 ( ⁄ )
http://www.fileformat.info/info/unicode/char/2044/index.htm
同一段代码在我的 Mac 终端中完美运行,它使用 UTF-8 作为默认编码。有没有办法在 Windows 上也显示这个?我在 windows 命令提示符下使用的字体是 consolas。
我希望我的代码可以处理任何 Unicode 字符,而不仅仅是这个特定的示例,因为输入是一个网络查询结果,我无法控制它。
【问题讨论】:
-
我的脑后有些东西告诉我 UTF-8 和 Windows 终端不会轻易工作
-
在经历了这个错误bugs.python.org/issue1602之后,我已经快要放弃了
-
你可以找到另一个终端程序来工作,而不是 Windows 'cmd 或其他什么。我听说可以安装 mingw 并在那里有一个半工作的终端。否则,只需安装虚拟机并为我们的开发内容设置适当的 Linux 环境。
标签: python windows terminal utf