我们用VS编译出来的QT程序,经常会遇见中文乱码,其实解决方法很简单:
在main函数所在文件的包含如下文件:
#include <QtCore/QTextCodec>
然后,在main函数的开头加入这么一句话就可以了。
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
之后在调用的时候,所有的字符串记得使用tr()函数包裹起来。比如:
QMessageBox::warning(this, tr("出错啦!"), errorInfo, tr("OK"));
这个是因为VS默认的编码是GB2312,而函数tr的作用,是将默认的字符串转换成QT内部的编码:Unicode,所以我们这里只需要设置好编码即可。
如果碰到一些2312里面没有的生僻字,我们也可以尝试使用Windows默认的多字符编码GB18030来解决。