我认为在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将解决问题。
答案 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