Windows

时间:2015-11-16 13:36:45

标签: windows python-3.x unicode

我认为在21世纪这不是问题,但是:

import sys
from PySide import QtGui
print('\u2122')
app = QtGui.QApplication(sys.argv)
widget = QtGui.QWidget()
widget.setWindowTitle('\u2122')
widget.show()
sys.exit(app.exec_())
Ubuntu上的

在窗口和终端中都显示商标符号,在Windows(10)上显示\u2122这两个地方。我在两个系统上使用python 3.4,在Windows上它是一个Canopy安装,如果这有帮助,但可能完全无关。如何才能在Windows上显示unicode字符?

修改

好的,事实证明让print()没有成为python 3,我的不好。虽然当我将字符串修复为u'\u2122时,Windows python 2.7.9会出现一个有趣的错误:

File "C:\Program Files\Enthought\Canopy32\App\appdata\canopy-1.5.5.3123.win-x86\lib\encodings\cp852.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2122' in position 0: character maps to <undefined>

无论如何,安装3.x将解决问题。

1 个答案:

答案 0 :(得分:1)

确保Windows框上有Python 3.x.结果与使用Python 2.x一致。

要使用2.x创建代码,请通过在每个字符串后附加u将字符串更改为Unicode字符串。 E.g。

widget.setWindowTitle('\u2122')

在Windows上,不要尝试将Unicode打印到控制台 - 它完全坏了。如果必须,请参阅以下允许它的模块:https://github.com/Drekin/win-unicode-console