我们用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来解决。