Qt Creator 中文编译失败 怎么办
2017-03-30 13:20
141 查看
在Qt Creator 中c++源码有中文字符,结果不能编译成功。
代码
报错如下:
-1: warning: C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
error: C2001: newline in constant
给中文字符串加QStringLiteral宏或QString::fromLocal8Bit函数:
不过,在这两种形式下,你都无法用tr方法来创建翻译了。
另一种方法是宏定义:
这个宏告诉MSVC,执行字符集是UTF-8编码的,别瞎整成GB2312的!还有个好处,就是能用tr包中文,方便日后的翻译。
同样适用Qt中文乱码的问题。
其实主要原因是用MSVC编译造成的。
参考:Qt与MSVC中文乱码问题的解决方案
代码
QMessageBox::warning(this, "警告","用户名密码错误",QMessageBox::Yes);
报错如下:
-1: warning: C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
error: C2001: newline in constant
解决方法:
首先源码的保存格式是UTF-8。Qt creator 的菜单里 编辑-Select Encoding,可以选择编码。以及工具-选项->文本编辑器->行为->文件编码里要选择UTF-8,BOM: 如果是UTF-8则自动添加。给中文字符串加QStringLiteral宏或QString::fromLocal8Bit函数:
QStringLiteral("你好中文!");
不过,在这两种形式下,你都无法用tr方法来创建翻译了。
另一种方法是宏定义:
#if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif
这个宏告诉MSVC,执行字符集是UTF-8编码的,别瞎整成GB2312的!还有个好处,就是能用tr包中文,方便日后的翻译。
ps
之前的报错,我还发现,如果是偶数个中文就不会报错,奇数个就会编译报错。同样适用Qt中文乱码的问题。
其实主要原因是用MSVC编译造成的。
参考:Qt与MSVC中文乱码问题的解决方案
相关文章推荐
- 关于Qt Creator中工程路径不能包含中文的编译错误
- 自己编译firefox,thunderbird 怎么使用中文
- qt creator 源代码中含有中文编译报错
- eclipse复制到IDEA中文不匹配,编译失败
- Qt Creator 源代码(UTF-8)中如果有中文注释,会编译报错
- Ubuntu下Qt creator无法输入中文怎么办
- qt5 有中文使用vs编译时失败,以及中文显示乱码
- 自己编译firefox,thunderbird 怎么使用中文
- QtCreator 4.0 Q5.7 VS2015 源码中有中文导致编译失败的问题的解决方法
- android studio 解决中文乱码 编译失败问题
- 在Qt Creator 中创建工程时,工程的路径中不能包含有中文,否则编译不通过
- eclipse复制到IDEA中文不匹配,编译失败
- 怎么让中文环境的系统用gcc编译程序时输出内容为英文
- 带中文的cmd编译 ;怎么处理警告:编码 GBK 的不可映射字符
- url编码怎么编译成中文
- "please run 'make mrproper'"编译失败错误解决方法
- linux c的连接库和怎么同时编译多个源程序
- APP Hub 应用发布失败,请问大家都是怎么设置可以成功提交哦
- 用nmake来编译,问环境变量怎么设置