以下内容转载或参考自
http://blog.csdn.net/xuancailinggan/article/details/50373415
http://blog.csdn.net/xuly_29/article/details/52247567
说来惭愧,好多群友问这个问题,因为我用的minGW编译器,所以这个问题对我来说是不存在,后来终于想尝试用下vs版的qt了。
好了不多说,上代码:
就这一句话,直接报错说常量中有换行符,我滴天,其实呢,这个是编译器作怪,vs版本的编译器不认汉字!坑爹吧……
修改一下设置:
然后重新编译,正常情况下是可以的哦。但是显然不可以,这里是QT的一个bug,你需要找到汉字,随便找几个就行,重新打一下,然后编译就好了。
来下总结吧:
首先,要想用中文,你要设置编码是带bom的,这样写出来的代码没有任何问题。
如果你已经开写,或者用的别人的代码,你需要设置以后再选几个字重新打一下。选几个就行,别几万的汉字你都打了……那还不如重写呢。
正常运行了吧,不过下面这个还是乱码的,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里可以正确显示中文并且不会出错"常量中有换行符"的错误