QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)
问题解决:对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)
假设编译环境:QT5+vs2015
项目配置:
默认编码:UTF-8
UTF-8 BOM: 目前存在了则保留
如果你在使用VS2008(需要打补丁)、VS2010、VS2013、VS2015(未安装Update2),或者你的源码需要兼容这些编译器,当你在Qt5的C++源文件内使用中文时,你需按以下步骤操作。(不止是中文,其实你完全可以在代码中使用日韩法俄语等等各国语言)
1. 源文件保存为带BOM的UTF-8格式(推荐转换软件coolEdit)
如果你要支持这些VS版本,且需要跨其他平台,保存为带BOM的UTF-8是必不可少的。
2. 而后,源码中的所有字符串常量使用 QStringLiteral 宏进行包裹,如:
QString s1 = QStringLiteral("中国");
但是如果,除了宽字符串外,你还需要使用窄字符串,比如
QString s2 = tr("中国");
QByteArray s3 = "中国";
const char * s4 = "中国";
edit.setText("中国");
那么,你需要:
1. Qt5要求窄字符串执行字符集为 UTF8
在包含文件或CPP文件添加下面3行代码
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
2. [MSVC] 如果你不在用MSVC,请跳过该步骤
如果你在使用MSVC2005或MSVC2012,请换用其他版本的MSVC
如果你在使用MSVC2008,请升级到最新的SP1,并安装 KB980263 补丁
如果你在使用MSVC2010、MSVC2013或更新版本,本步骤不需要额外操作
具体细节,请参考 http://blog.csdn.net/dbzhang800/article/details/7540905
QT5对话框的中文字符串【乱码】 (error: C2001: 常量中有换行符)相关推荐
- QT MSVC中文编译出错error: C2001: 常量中有换行符
Qt error: C2001: 常量中有换行符 QT上用MSVC去编译部分含有中文的字符串时会出现编译错误error: C2001: 常量中有换行符 解决方法: 1.设置是工具->选项-> ...
- 解决VS编译中文报错 error C2001:常量中有换行符
产生原因:文件中有中文字符,但是文件是utf-8格式的,使用msvc编译器编译时就会产生上述错误 解决办法: 方式1: 通过把源文件转换为gbk编码,但是只能一个一个文件转换,当导入项目文件较多时,这 ...
- Qt5 bug error c2001: 常量中有换行符
昨天被qt creator中的"error c2001: 常量中有换行符"问题折腾了一天,今天终于找到解决办法啦. 传说上面这个问题是qt creator 的一个bug,在vs中编 ...
- c语言 error c2001,error C2001: 常量中有换行符解决方案
场景 修改同事引入的代码,添加中文日志打印,编译出错: error C2001: 常量中有换行符 fatal error C1057: 宏扩展中遇到意外的文件结束 错误指向了中文输出的日志打印代码行, ...
- c语言 error c2001,Visual Studio error C2001:常量中有换行符(解决办法)
在Visual Studio自动生成的项目中,碰见了一件关于文件编码的问题,集中在类似于以下的语句上: DASLog (DASProtWarn, L"(%s)消息超时,进入慢循环召唤模式.& ...
- Visual Stdio 中的error C2001: 常量中有换行符
error C2001: 常量中有换行符 问题: 使用Visual Stdio,cout中文的时候,有的时候可以正常编译并运行,但是有的时候会出现error C2001: 常量中有换行符. 出现err ...
- 解决vc2008 utf8中文字符串报错 C2001常量中有换行符
vs2008需要升级到sp1,然后打补丁 VS90SP1-KB980263-x86.exe c源文件以utf8 without bom保存,并添加 #ifdef _MSC_VER #pragma ex ...
- error: C2001: 常量中有换行符
一.问题复现 下面这句话报错 qDebug() <<"模态对话框弹出了"; 二.问题原因 中文,要么改成英文,要么修改编码 三.修改编码 1.QT界面菜单栏->工 ...
- 错误: error: C2001: 常量中有换行符
如图所示: 在使用tr()的时候出现的问题.例如: fileBtn->setText(tr("文件标准对话框实例")); 在最后一个中文和引号之间加个空格就可以解决,修改为: ...
最新文章
- joomla 1.7遇到的麻烦——不能删除模板的解决办法
- 这些Windows 10隐藏秘技,你知道几个?
- php 大流量网站访问
- MySQL怎么导出用户权限表_导出MySQL用户权限_MySQL
- linux 同一个ip 绑定两个不同的域名 访问两个不同的项目
- 回顾 | Apache Flink 1.9 版本新特性强势预告!(内含PPT下载链接)
- bzoj 2623 所罗门的咒语
- 32位汇编语言helloworld_编程语言发展70年,50种不同语言输出Hello World,你知多少?...
- 浅谈Redis基本数据类型底层编码(含C源码)
- php语言的cmpp协议应用
- R语言经纬度度分秒转小数点
- 使用Java实现多个文件压缩打包
- java 替换空白字符串
- 英伟达虚拟服务器显卡,ESXi系统虚拟机直连NVIDIA显卡
- 新款「超大杯」iPhone遭爆料!不止大镜头,还有1TB储存,但却不能叫iPhone13
- Generator 快速理解
- 【展馆设计】互动多媒体投影有哪些实用价值
- DataBinding原理----单向数据绑定(3)
- 【线性规划LP建模实例——化学工厂肥料】
- c语言编程银行利率计算器,c语言写用户从键盘上输入银行利率,本金,存...
热门文章
- 轻松智能的数据中心冷却节能方法
- centos修改mysql密码_WAMP下修改MYSQL数据库密码
- vbsedit无法创建空文档_如何用Python快速优雅的批量修改Word文档样式?
- DL之DeconvNet:DeconvNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- DL之RNN:基于RNN实现模仿贴吧留言
- TF之LiR:基于tensorflow实现手写数字图片识别准确率
- Rosonblatt线性感知器
- 跳出小程序 video组件 卡顿、黑屏、全屏等坑
- 超哥笔记--linux准备知识(1)
- git提交代码之git-GUI-Here提交