解决QT在VS下中文乱码的问题

我们用VS编译出来的QT程序,经常会遇见中文乱码,其实解决方法很简单:

在main函数所在文件的包含如下文件:

1
2
##include <QtCore/QTextCodec>

然后,在main函数的开头加入这么一句话就可以了。

1
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

之后在调用的时候,所有的字符串记得使用tr()函数包裹起来。比如:

1
QMessageBox::warning(this, tr("出错啦!"), errorInfo, tr("OK"));

这个是因为VS默认的编码是GB2312,而函数tr的作用,是将默认的字符串转换成QT内部的编码:Unicode,所以我们这里只需要设置好编码即可。

如果碰到一些2312里面没有的生僻字,我们也可以尝试使用Windows默认的多字符编码GB18030来解决。

原创文章,转载请标明出处:Soul Orbit
本文链接地址:解决QT在VS下中文乱码的问题