关于C++中 编码不正确编译报错问题
1.报错现象
在编译Geos是报错“警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 ”,曾经在编译QGis时也存在类似报错。
严重性 代码 说明 项目 文件 行 禁止显示状态 警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 astyle D:\Geos\geos-3.8.0\tools\astyle\ASLocalizer.cpp 1
2.报错原因
由于源代码为 utf-8 编码,本机 locale 为中文,编译时可能出现 ”Newline in constant“ 的错误,需显示告诉编译器源码为 utf-8 :
3.解决办法:
右键项目属性|配置属性|C/C++|命令行|其他选项 里添加: /source-charset:utf-8
参考链接:
浙公网安备 33010602011771号