葫芦小金刚 2019-06-17
如题,解决Python中用PyQt时中文乱码问题的解决方法:
在中文字符串前面加上u,如u'你好,世界',其他网上的方法没有多去探究,Python的版本也会影响解决方法,故这里只推荐这种。
(有人说用toLocal8bit函数也可以,我试了下,貌似不行)请看例子:
#coding=utf-8 from PyQt4 import QtGui, QtCore 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)