【发布时间】:2015-08-11 15:16:29
【问题描述】:
我有以下代码:
# -*- coding: utf-8 -*-
print "╔╤╤╦╤╤╦╤╤╗"
print "╠╪╪╬╪╪╬╪╪╣"
print "╟┼┼╫┼┼╫┼┼╢"
print "╚╧╧╩╧╧╩╧╧╝"
print "║"
print "│"
由于某种原因,只有第三行 (╚╧╧╩╧╧╩╧╧╝) 实际输出正确,其余的是奇怪的符号组合。我认为这是由于一些编码问题。 IDLE中的完整输出如下:
╔╤╤╦╤╤╦╤╤╗
╠╪╪╬╪╪╬╪╪╣
╟┼┼╫┼┼╫┼┼╢
╚╧╧╩╧╧╩╧╧╝
â•‘
│
这是什么原因造成的,我该如何解决?我正在使用只有触摸键盘的平板电脑(带有 Win10 的 Surface Pro 3),因此任何打字量最少的解决方案(尤其是输入奇怪的字符)都是理想的,但显然所有帮助都值得赞赏。
【问题讨论】:
-
这一定是本地问题,因为它在这里的 *nix 系统上运行良好,本地和远程。 ideone.com/DeanM5
-
我可能疯了,但你不需要在 Python 2 中为 unicode 字符串添加前缀吗?例如,
print u"╠╪╪╬╪╪╬╪╪╣"。见docs.python.org/2/howto/… -
@FredLarson 没有“u”,字符串只是 UTF-8 字节流,在传递到终端之前不需要进一步编码。
-
@FredLarson 谢谢,解决了!我想知道为什么第 3 行运行良好...
-
@chepner: 是的,但是 UTF-8 字节流在 Windows 上可以工作吗?我相信 Windows 原生使用 UTF-16。