Qt使用MSVC编译器不能正确显示中文的解决方案

Posted touch-skyer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt使用MSVC编译器不能正确显示中文的解决方案相关的知识,希望对你有一定的参考价值。

用VisualStudio做为IDE,使用Qt框架,显示中文,会出现乱码的情况。

原因:MSVC编译器虽然可以正常编译带BOM的UTF-8编译的源文件,但是生成的可执行文件的编码是Windows本地字符集,比如GB2312。在可执行文件中,字符串是以GB2312编码的,而可执行程序执行到该语句时,对这个字符串却是以UTF-8解码的,这样就会出现乱码。

解决方法有两种:

1.使用QStringLiteral()宏封装字符串,但此种方法不能使用tr()函数用于翻译字符串。

QString str = QStringLiteral("使用中文");

2.强制MSVC编译器采用UTF-8编码生成可执行文件,需要在每个使用到中文字符串的头文件和源文件的前部加入如下语句:

#pragma execution_character_set("utf-8")

以上是关于Qt使用MSVC编译器不能正确显示中文的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

QT使用MSVC编译器输出中文乱码问题解决方法

Qt安装显示:MSVC2015 编译器带有感叹号,及解决办法

使用 MSVC 2015 编译 GRPC 0.15 以在 Windows 上与 Qt 5.6 一起使用

选择 MSVC 工具链

将 MSVC 2017 添加到 Qt

关于Qt配置编译器的问题