QT学习记录——vs2015打开QT项目出现的问题

QT 专栏收录该内容
3 篇文章 0 订阅

vs2015打开QT项目出现的问题

找个地方,记录下QT学习中的小问题

问题描述

C2001:常量中有换行符
在这里插入图片描述

问题探索

通过百度了解到可能是中文字符编码问题造成的
但是,尝试了一些方法,运行中又会出现中文乱码状况
① 根据百度经验,设属性,常规->字符集,C/C+±>命令行 添加utf-8
② 加入语句:#pragma execution_character_set(“utf-8”)
③ 在中文处添加:QStringLiteral
④ 拆分字符串重新组包:随意乱拆的。此错误消失,出现中文乱码
⑤ 在此错误消失后,出现中文乱码时,使用①②③,没有效果

问题解决

从最原始的错误出发
warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
error: C2001: 常量中有换行符

进行学习:(来源某不知名大大作者:Winland0704文档说明)
VC编译器不能识别不带BOM(Byte Order Mark,字节顺序标记)标记的UTF-8文件,它默认将QtCreator生成的UTF-8源代码文件当作GBK处理,UTF-8的一个汉字是3字节,GBK的一个汉字是2字节。有意思的问题来了:
①如果UTF-8源文件单行里的汉字是偶数个,能够整除2,这样VC编译器编译不出错。(比如2个UTF-8汉字在VC编译器看来是3个GBK汉字,可以编译,运行也不出错。)
②如果UTF-8源文件单行里的汉字为奇数个,不能整除2,那样VC编译器觉得汉字编码错误,因为不能以GBK双字节的汉字来解析,少东西了,这时候报错 “C2001: 常量中有换行符”。

一般由VS生成的项目,就使用VS进行打开编辑。
如果是由QtCreator生成的项目,就使用QtCreator打开。
VS和QtCreator两种项目不要混搭,因为文本编码一混乱,程序就不知道会乱成什么样子了,不要没事找事!

那么,刚好就没事找事做了呢?
QT中完全运行正常,VS打开出现了问题
学习后总结如下:
(恰巧找事做的伙伴可以尝试)
① 建立QT项目建立时,如图设置即可。
项目建完后(编译运行前未测),再进行设置,再用VS中打开,依然出现上述问题,原因暂且未知。
在这里插入图片描述
② ①无法拯救时,将相关文件进行记事本打开,另存为”UTF-8”格式,重新于vs中打开即可。直接进行②也是OK的。
③ 出现中文乱码则用#pragma execution_character_set(“utf-8”)即可。

最后,敬待各位大佬补充说明,特别感谢Winland0704的资料文档!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

jiyiuni091

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值