Pyside用语言环境做了一些奇怪的事情

时间:2014-06-24 10:36:46

标签: unicode pyside

以下是unicode / pyside相关问题的相关代码行:

#!/usr/bin/env python
# coding=utf-8
...
msgBox = QtGui.QMessageBox()
msgBox.setText('é')
print 'é'
....

印刷品做了应有的事情,暗示我的语言环境是utf-8,而printenv确认了这一点。另一方面,msgBox显示'Ã'',除非我在字符串前加上'u'。这是正常的,当python永远不会引发问题时,我是否真的必须为每个字符串添加前缀以便使用Pyside?

感谢您的关注。

1 个答案:

答案 0 :(得分:0)

在Python 2.X中,字符串有两种数据类型:字节码和unicode。有了你,你选择unicode什么也没有选择字节码。如果你print bytes('é'),你会看到PySide / PyQt从哪里获取数据。所以这可能是正常的。

简单的方法是使用Python 3.X,它只有unicode并且不会让你感到困扰。

不确定是谁真正做了一些不应该做的事情,{2.}}函数Python 2.X或Python 2.X的PySide / PyQt,所以我把它作为社区维基。