qt-vs 常量中有换行符

时间:2024-03-24 07:47:49

以下内容转载或参考自

http://blog.csdn.net/xuancailinggan/article/details/50373415

http://blog.csdn.net/xuly_29/article/details/52247567


说来惭愧,好多群友问这个问题,因为我用的minGW编译器,所以这个问题对我来说是不存在,后来终于想尝试用下vs版的qt了。

好了不多说,上代码:

qt-vs 常量中有换行符

就这一句话,直接报错说常量中有换行符,我滴天,其实呢,这个是编译器作怪,vs版本的编译器不认汉字!坑爹吧……

修改一下设置:

qt-vs 常量中有换行符

然后重新编译,正常情况下是可以的哦。但是显然不可以,这里是QT的一个bug,你需要找到汉字,随便找几个就行,重新打一下,然后编译就好了。

来下总结吧:

首先,要想用中文,你要设置编码是带bom的,这样写出来的代码没有任何问题。

如果你已经开写,或者用的别人的代码,你需要设置以后再选几个字重新打一下。选几个就行,别几万的汉字你都打了……那还不如重写呢。

qt-vs 常量中有换行符

正常运行了吧,不过下面这个还是乱码的,vs坑爹啊……支持开源,果断minGW吧,少年们。







在使用gcc/mingw或clang作为编译器时不会出现,如果把环境换成以MSVC编译就出现此错误.

具体为:

C4819:该文件包含不能在当前代码页(936)中表示的字符.请将该文件保存为Unicode格式以防止数据丢失.

C2001:常量中有换行符

问题所在是源代码中的中文字符.


如果在QT Creator里Select Encoding...

经常会出现错误: Error:Could not decode "XXX.cpp" with "XXX"-encoding . Editing not possible.

并且源代码中的中文会变乱码.

解决方法:

用Visual Studio打开出错源代码.

文件->高级保存选项->编码,

把编码由"Uncode (UTF-8 无签名) - 代码页65001"

换成

"Uncode (UTF-8 带签名) - 代码页65001"

确定后保存.

在QT Creator里可以正确显示中文并且不会出错"常量中有换行符"的错误