第一步:代码文件选择用utf8编码带bom。
工具——选项——文本编辑器——行为——文件编码
第二步:在有中文汉字的代码文件顶部加一行(一般是cpp文件) #pragma execution_character_set("utf-8") ;这行代码是为了告诉msvc编译器当前代码文件用utf8去编译。
第三步:
main函数中加入设置编码的代码,以便兼容Qt4,如果没有Qt4的场景可以不用,从Qt5开始默认就是utf8编码。
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
QTextCodec *codec = QTextCodec::codecForName("gbk");
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
#endif
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
#endif
补充:
#if 表达式
程序段1
#else
程序段2
#endif
表示:如果表达式为真,则编译程序段1,否则编译程序段2.
以 #if 指令开始的条件指令必须用 #endif 指令显式终止。
大佬详细文章:彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)