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

本文记录了在VS2015中打开QT项目时遇到的C2001错误及中文乱码问题。错误源于VC编译器对UTF-8文件的误识别。解决方案包括:保持使用QTCreator或VS打开对应项目,或者通过转换文件编码或添加特定编译指令来解决。

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的资料文档!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值