码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-03-24 17:29:21      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:执行文件   qstring   文件中   utf-8   程序   文件的   中文字符   解决方案   方案   

用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编译器不能正确显示中文的解决方案

标签:执行文件   qstring   文件中   utf-8   程序   文件的   中文字符   解决方案   方案   

原文地址:https://www.cnblogs.com/touch-skyer/p/10588932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!