QT5 项目中,中文错误有两种方法,分享如下:
1. 就是用utf-8编码 在 .cpp 中 最上端添加以上代码
#pragma execution_character_set("utf-8")
2.使用宏
QString str = QStringLiteral("我是中文!")
3.使用QString的方法
QString str = QString::fromLocal8Bit("我是中文!");
4.使用编码
QTextCodec *codec = QTextCodec::codecForName("GB2312");//也可以是GBK
QString str = codec->toUnicode("我是中文!");
这里说一下,以上方法是针对QT5中,中文显示乱码的问题,网上针对QT4也有如下的解决办法
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
但是QT5中已经取消了setCodecForTr() 与SetCodecForCStrings()函数。我亲自试了下,中文依然乱码。
5.全局设置
在.pro文件夹中,新建文件 “charsetsetting.inc”
#pragma execution_character_set("utf-8")
然后再.pro文件中添加:
win32::QMAKE_CXXFLAGS += -FIcharsetsetting.inc
win32::QMAKE_CFLAGS += -FIcharsetsetting.inc