QT使用MSVC编译时报错C2001: 常量中有换行符

在Windows系统中,使用Qt进行C++开发时,由于默认GBK编码与Qt的utf-8编码冲突,可能导致C2001错误。解决方法包括:1) 设置UTF-8带BOM编码;2) 重新以UTF-8保存文件;3) 在代码中声明使用UTF-8编码。遵循这三步,可以消除编译错误并正确处理中文字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows系统下默认为GBK编码;而Qt中默认编码为utf-8;有时候,GBK编码的汉字解码后再用utf-8编码则可能会报错C2001: 常量中有换行符。解决方法如下:

步骤1.设定UTF-8,添加BOM

工具-->选项-->文本编辑器-->行为-->默认编码:UTF-8;UTF-8 BOM:如果编码是UTF-8则添加

步骤2:重新保存文件

编辑(注意要在报错的.cpp中点击编辑)-->Select Encoding-->选择UTF-8,然后点击“按编码保存”

完成以上两部,再编译运行不会报错了,但中文会出现乱码:需执行第三步

步骤3.代码中使用UTF-8编码

在指定的.h头文件中附上下列代码以使用utf-8字符集。

#if defined(_MSC_VER) && (_MSC_VER >= 1600)
#pragma execution_character_set("utf-8")
#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值