开发者社区> 问答> 正文

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

在使用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格式的源代码显示没问题,编译却不行呢?



展开
收起
爱吃鱼的程序员 2020-06-22 20:07:49 1006 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

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

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

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

    #pragmawarning(disable:4819)

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

    期待高手解决方案!!

    引用来自“TromaT”的答案

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

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

    #pragmawarning(disable:4819)

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

    期待高手解决方案!!

    2020-06-22 20:08:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载