以下是unicode / pyside相关问题的相关代码行:
#!/usr/bin/env python
# coding=utf-8
...
msgBox = QtGui.QMessageBox()
msgBox.setText('é')
print 'é'
....
印刷品做了应有的事情,暗示我的语言环境是utf-8,而printenv确认了这一点。另一方面,msgBox显示'Ã'',除非我在字符串前加上'u'。这是正常的,当python永远不会引发问题时,我是否真的必须为每个字符串添加前缀以便使用Pyside? p>
感谢您的关注。
答案 0 :(得分:0)
在Python 2.X中,字符串有两种数据类型:字节码和unicode。有了你,你选择unicode什么也没有选择字节码。如果你print bytes('é')
,你会看到PySide / PyQt从哪里获取数据。所以这可能是正常的。
简单的方法是使用Python 3.X,它只有unicode并且不会让你感到困扰。
不确定是谁真正做了一些不应该做的事情,{2.}}函数Python 2.X或Python 2.X的PySide / PyQt,所以我把它作为社区维基。