解决chromium警告C4819

初次构建chromium的时候,可能会遇到错误

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 C2220: warning treated as error - no ‘object’ file generated

尤其是在Windows上构建的时候,更容易遇到,网络上的方法,基本都是修改系统区域为英国(美国):

控制面板–区域–管理–更改系统区域设置 在页面中选择英语区域即可

这样修改系统设置,我不太喜欢,尤其是在工作机上,这样修改可能会引起其他未知问题,所以直接修改了gn配置文件中的default_warnings字段,添加一项"/wd4819"即可。


Update:

上面方法会导致部分文件无法正常解析,产生各种奇怪的语法错误。

新版chromium已经修复了此问题,提交详情见这里,最新的BUILD.gn文件见这里,其基本原理就是VS2015支持的新特性/utf-8,所以最终只需要在build/config/compiler/BUILD.gn文件中添加该编译选项即可:

cflags += [
      # Assume UTF-8 by default to avoid code page dependencies.
      "/utf-8",
    ]