如题,解决Python中用PyQt时中文乱码问题的解决方法:
在中文字符串前面加上u,如u'你好,世界',其他网上的方法没有多去探究,Python的版本也会影响解决方法,故这里只推荐这种。
(有人说用toLocal8bit函数也可以,我试了下,貌似不行)请看例子:
#coding=utf-8
from PyQt4 imp
s = QtCore.QString(u'你好(hello)世界(world)')
t = s.toLocal8Bit()
u = unicode(t,'gbk','ignore')
print t
print u
这段程序的输出是:
���(hello)����(world)
你好(hello)世界(world)
【注】在使用控件,需要使用中文时,在要显示的字符串前面加上u即可,如(下面两句代码是在类中的,不可直接执行):
btn_quit = QtGui.QPushButton(u"关闭",self)
reply = QtGui.QMessageBox.question(self, u'消息对话框',
"Are you sure to quit?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)