问题解决:对话框的中文字符串【乱码】 (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: 常量中有换行符)相关推荐

  1. QT MSVC中文编译出错error: C2001: 常量中有换行符

    Qt error: C2001: 常量中有换行符 QT上用MSVC去编译部分含有中文的字符串时会出现编译错误error: C2001: 常量中有换行符 解决方法: 1.设置是工具->选项-> ...

  2. 解决VS编译中文报错 error C2001:常量中有换行符

    产生原因:文件中有中文字符,但是文件是utf-8格式的,使用msvc编译器编译时就会产生上述错误 解决办法: 方式1: 通过把源文件转换为gbk编码,但是只能一个一个文件转换,当导入项目文件较多时,这 ...

  3. Qt5 bug error c2001: 常量中有换行符

    昨天被qt creator中的"error c2001: 常量中有换行符"问题折腾了一天,今天终于找到解决办法啦. 传说上面这个问题是qt creator 的一个bug,在vs中编 ...

  4. c语言 error c2001,error C2001: 常量中有换行符解决方案

    场景 修改同事引入的代码,添加中文日志打印,编译出错: error C2001: 常量中有换行符 fatal error C1057: 宏扩展中遇到意外的文件结束 错误指向了中文输出的日志打印代码行, ...

  5. c语言 error c2001,Visual Studio error C2001:常量中有换行符(解决办法)

    在Visual Studio自动生成的项目中,碰见了一件关于文件编码的问题,集中在类似于以下的语句上: DASLog (DASProtWarn, L"(%s)消息超时,进入慢循环召唤模式.& ...

  6. Visual Stdio 中的error C2001: 常量中有换行符

    error C2001: 常量中有换行符 问题: 使用Visual Stdio,cout中文的时候,有的时候可以正常编译并运行,但是有的时候会出现error C2001: 常量中有换行符. 出现err ...

  7. 解决vc2008 utf8中文字符串报错 C2001常量中有换行符

    vs2008需要升级到sp1,然后打补丁 VS90SP1-KB980263-x86.exe c源文件以utf8 without bom保存,并添加 #ifdef _MSC_VER #pragma ex ...

  8. error: C2001: 常量中有换行符

    一.问题复现 下面这句话报错 qDebug() <<"模态对话框弹出了"; 二.问题原因 中文,要么改成英文,要么修改编码 三.修改编码 1.QT界面菜单栏->工 ...

  9. 错误: error: C2001: 常量中有换行符

    如图所示: 在使用tr()的时候出现的问题.例如: fileBtn->setText(tr("文件标准对话框实例")); 在最后一个中文和引号之间加个空格就可以解决,修改为: ...

最新文章

  1. joomla 1.7遇到的麻烦——不能删除模板的解决办法
  2. 这些Windows 10隐藏秘技,你知道几个?
  3. php 大流量网站访问
  4. MySQL怎么导出用户权限表_导出MySQL用户权限_MySQL
  5. linux 同一个ip 绑定两个不同的域名 访问两个不同的项目
  6. 回顾 | Apache Flink 1.9 版本新特性强势预告!(内含PPT下载链接)
  7. bzoj 2623 所罗门的咒语
  8. 32位汇编语言helloworld_编程语言发展70年,50种不同语言输出Hello World,你知多少?...
  9. 浅谈Redis基本数据类型底层编码(含C源码)
  10. php语言的cmpp协议应用
  11. R语言经纬度度分秒转小数点
  12. 使用Java实现多个文件压缩打包
  13. java 替换空白字符串
  14. 英伟达虚拟服务器显卡,ESXi系统虚拟机直连NVIDIA显卡
  15. 新款「超大杯」iPhone遭爆料!不止大镜头,还有1TB储存,但却不能叫iPhone13
  16. Generator 快速理解
  17. 【展馆设计】互动多媒体投影有哪些实用价值
  18. DataBinding原理----单向数据绑定(3)
  19. 【线性规划LP建模实例——化学工厂肥料】
  20. c语言编程银行利率计算器,c语言写用户从键盘上输入银行利率,本金,存...

热门文章

  1. 轻松智能的数据中心冷却节能方法
  2. centos修改mysql密码_WAMP下修改MYSQL数据库密码
  3. vbsedit无法创建空文档_如何用Python快速优雅的批量修改Word文档样式?
  4. DL之DeconvNet:DeconvNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  5. DL之RNN:基于RNN实现模仿贴吧留言
  6. TF之LiR:基于tensorflow实现手写数字图片识别准确率
  7. Rosonblatt线性感知器
  8. 跳出小程序 video组件 卡顿、黑屏、全屏等坑
  9. 超哥笔记--linux准备知识(1)
  10. git提交代码之git-GUI-Here提交