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")

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

时间: 2024-09-29 19:33:19

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

让secureCRT正确显示中文

1.安装linux时选择中文系统,或安装后vi /etc/sysconfig/i18n文件改为:LANG= zh_CN.UTF-8 2.在secureCRT里面: Session Options(会话选项) -> Terminal(终端) -> Appearance(显示), 将Fonts(字体)选择成fixedsys将charater(字符)选择成UTF-8就支持中文了. 让secureCRT正确显示中文,布布扣,bubuko.com

uploadify不能正确显示中文的按钮文本的解决办法

uploadify 目前不能正确显示中文的按钮文本. 我发现bug的原因是uploadify错误的使用了 js 的 escape 和 flash 的 unescape配对,而这2个是不兼容的.正确的转码传递参数应该用 encodeURI/decodeURI 配对,这2个函数的行为在js和flash里是相同的.其他地方的escape/unescape也应该替换掉,下面只修改影响按钮文本的部分.1. jquery.uploadify.v2.1.4.js 70行 将if (settings.butto

windows中让secureCRT正确显示中文(ssh)

已经在raspi中正确设置了juicessh安卓客户端已经测试过了,可以正常显示中文. 1.安装linux时选择中文系统,或安装后vi /etc/sysconfig/i18n文件改为:LANG= zh_CN.UTF-8 2.在secureCRT里面: Session Options(会话选项) -> Terminal(终端) -> Appearance(显示), 将Fonts(字体)选择成fixedsys将charater(字符)选择成UTF-8就支持中文了. windows中让secureC

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案

基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器进行设置之类的,结果没有一个有效果,暑假学习了用Dos来开发Java程序,输入cmd命令中dir(directory)进行查询操作时,显示了一堆中文乱码,原本是想重装系统的,因为电脑里面重要东西有点多,所以自己花了一段时间捣鼓了一下电脑,终于解决了如上两个问题,现在心里很开心,附上如下两幅图: cm

[Shell编译]Windows Cmd显示中文乱码解决方案

chcp 65001  就是换成UTF-8代码页 chcp 936 可以换回默认的GBK chcp 437 是美国英语[Shell编译]Windows Cmd显示中文乱码解决方案

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

方法一:使用QStringLiteral()宏对每个中文字符串封装,此方法的缺点是不能在使用tr()函数用于字符串翻译: 方法二:强制MSVC编译器采用UTF-8编码生成可执行文件,需要在出现中文字符串的文件中加入如下语句: #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif 原文地址:https://www.cnblogs.com/stones-dream/p/9844825.html

linux下java窗口,正确显示中文

Tip1 1.在 JAVA_HOME/jre/lib/fonts/ 下建立个目录 fallback 2.在 fallback 里弄个中文字体最简单ln一下就好了 比如: ln -s /usr/share/fonts/truetype/arphic/uming.ttf $JAVA_HOME/jre/lib/fonts/fallback/ Tip2 问题描述:Java 应用程序的中文无法显示,呈现方块状. 原因分析:Java 应用程序无法找到可供显示中文的字体. 解决方案:首先,确保系统里安装了 J

Windows下命令行Git无法显示中文问题解决方案

Windows下Git设置编码正常显示中文: 在 CMD 下设置环境变量 set LESSCHARSET=utf-8 在 PowerShell 下设置环境变量 $env:LESSCHARSET='utf-8'GitBash中正常显示中文: 打开Gitbash -> 右键->options ->左侧text->设置locale:zh_cn,设置Character set:GBK->save->apply 测试是否正常:GitBash输入 systeminfo看能否正常显示

Sublime text 3 中Package Control 的安装与使用方法和解决Sublime Text 3不能正确显示中文的问题

Sublime text 3 中Package Control 的安装与使用方法,英文好可以在这个网址看看, 下面简单的说明一下 : https://packagecontrol.io/installation 1. 打开sublime text3 按下ctrl+~ 把下面的代码粘贴或者分别点击 View --> Show Consolemenu后粘贴 import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f'