Qt中文乱码解决方法(一步到位)
一、中文乱码解决方法一
1、QString str = QStringLiteral("1你好世界 abc")); //推荐
2、QString str = QObject::tr("2你好世界 abc")); //推荐国际化软件使用,其余不推荐
3、QString str = QString::fromLocal8Bit("3你好世界 abc"); //不推荐,
4、QString str = QString::fromLatin1("4你好世界 abc"); //不推荐
5、QString str = QString::fromUtf8("5你好世界 abc"); //推荐
6、QString str = QString::fromWCharArray(L"6你好世界 abc"); //不推荐,字符串的编码取决于 wchar 的大小。
7、QString str = QStringLiteral("7你好世界 abc"); //不推荐,
8、QString str = (u8"8你好世界 abc"); //推荐 在中文字符前加上 u8,然后把中文字符用双引号包括
10、在头文件的类前面放入这一行,设置源文件的编码格式:
# pragma execution_character_set("utf-8")
二、mian入口使用 QTextCodec 一步到位
本方法,仅适用于Qt4
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
#ifdef Q_OS_LINUX
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
#else
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
#endif
QMyTest w;
w.show();
return a.exec();
}
三、VS + Qt5中文乱码解决方法
【2017 + Qt乱码】
(1/2) 首先
编码格式改为 utf-8 【可以使用插件 Force UTF-8(No Bom)】
(2/2)然后
选中当前项目——右键属性——配置属性——C/C++——命令行——输入/utf-8