天天爱学习 发表于 2017-11-6 23:16:42

编译出来有很多 字符在当前源字符集中无效

但是编译可以通过。请问怎么解决吗?

mknmknmk 发表于 2017-11-7 18:02:05

https://answers.unrealengine.com/questions/687563/have-you-ever-met-warning-c4828.html

powers0010 发表于 2017-11-8 08:45:57

Remove all chararacters in your code as "áàâäãéèêëí,..." in comments too and your warning will vanish.
这句话何解?

rrfetch 发表于 2017-11-8 09:18:30

就是说文件里最好只有英文 ASCII 字符,不要有汉字的意思。

因为 cpp 和 hpp 文件都是文本文件,编译器没办法预知它是什么编码的,只能猜测一个,猜错了就会报这类错误。

不光是编译器,所有处理文本的工具链都有这个问题,包括 git 这类版本管理工具等。

推荐的方法是
1) 如果你团队的英文都很好,那就全都用英语
2) 如果喜欢用中文(或任何其它非英语语言,比如德语、法语、阿拉伯语等),就用英文的 Windows 系统,代码文件用 utf-8 编码(Visual Studio 可以在 File -> Advanced Save Option 下的 Encode 设置为 utf-8 / 65001)。


为了永久避免编码问题,强烈推荐英文 Windows + utf-8 编码组合

rrfetch 发表于 2017-11-8 09:21:53

用英文 Windows 的优点是,你写的中文程序,如果有编码问题,马上就能看出来,也就很快修正了。显示正常后,在任何 Windows 上都能正确显示中文(有字体的情况下)

不会出现中文 Windows 上显示正常,英文或者韩文 Windows 上显示乱码的现象。
页: [1]
查看完整版本: 编译出来有很多 字符在当前源字符集中无效