Qt5的中文乱码问题如何解决
-
之前Qt4写的代码用QTextCodec::codecForTr()来解决中文输入问题,在Qt5中取消了这个方法,请问Qt5中是怎么解决这个股问题的
-
QTextCodec::setCodecForTr(QTextCodec::codecForLocale())
用这个试试.放在main函数里面. -
QTextCodec::setCodecForTr(QTextCodec::codecForLocale())
在Qt4里面我就是这么解决的,在Qt5里面没有setCodecForTr这个成员函数了 -
只要你的源代码编码是utf-8就没问题,你可以直接用:
QString = "你好";
Qt5取消QTextCodec::setCodecForTr可能是因为它被滥用了。 -
Qt5 取消了QTextCodec::setCodecForTr()和QTextCodec::setCodecForCString()这两个函数。
直接将 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8")) 至于QApplication实例之前即可解决;
-
[quote author="kenier" date="1363524790"]只要你的源代码编码是utf-8就没问题,你可以直接用:
QString = "你好";
Qt5取消QObject::tr可能是因为它被滥用了。[/quote]怎么可能,我用tr好好的。
目前中文问题我统统生成一个ts文件,再用应用程序载入qm文件解决。 -
如果使用Qt Creator的话,检查源文件是否是不带BOM的utf8文件,如果不是,那就显示的是乱码.
-
Qt5中,对于QString常量,建议使用QStringLiteral宏。
QString s = QStringLiteral("你好"); -
如果使用msvc2005/2008/2010,那么需要将包含中文的源文件保存为带BOM的UTF8格式,并且使用QStringLiteral;如果要处理本地文件路径,那么需要使用QFile::encodeName和QFile::decodeName