Qt Creator 源代码中如果有中文,会编译报错

木头r 发布于 2013/04/20 00:02
阅读 8K+
收藏 1

在使用Qt Creator写代码时,发现如果源代码里有中文时,会提示如下警告:


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

main.cpp(7) : error C2001: 常量中有换行符

main.cpp(8) : error C2144: 语法错误:“QFile”的前面应有“;”

代码很简单:


int main()
{
    QString str = "吗";
    return 0;
}

Qt creator 中的文件编码使用的是无bom的utf8。

如果使用带BOM的utf8或者gbk等格式,则不会出现该问题。

但是要想程序能支持中文,又必须得使用utf8的。很纠结。

Qt版本使用的是5.0.2

该问题该怎么解决?为什么utf8格式的源代码显示没问题,编译却不行呢?



以下是问题补充:

@木头r:是不是因为Qt Creator中使用的是windows sdk编译器导致的呢? (2013/04/20 00:16)
加载中
0
xiangxw
xiangxw

这个问题我遇到过,从其他地方复制有格式的代码或者打开已有的不是utf8格式的代码时就可能这样。

我的解决:只复制文本。(如先把代码复制到记事本,再从记事本复制到Qt Creator)

0
TromaT
TromaT

同样的问题, 就是因为我用了中文注释!

有没有什么办法可以忽略这个警告呢?

# pragma warning (disable:4819)

在文件中加这个 貌似 不行!!!

期待高手解决方案!!

0
木头r
木头r

引用来自“TromaT”的答案

同样的问题, 就是因为我用了中文注释!

有没有什么办法可以忽略这个警告呢?

# pragma warning (disable:4819)

在文件中加这个 貌似 不行!!!

期待高手解决方案!!

使用带bom的UTF8文件格式,然后 在代码中添加 #pragma execution_character_set("utf-8")
返回顶部
顶部