奇思妙想 · 2024年 4月 14日 0

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

208 次浏览

Visual Studio默认源代码编码格式?有介绍VS判断代码编码的优先级,如上的警告表示VS以代码页936解析,即GB2312,为中文Windows操作系统ANSI编码。说明,源代码既没有BOM头,也没有指定/utf-8或者/source-charset选项,VS选择用ANSI编码解析,但解析失败,显然文件编码一定不是GB2312. 解法需要了解文件真正的编码格式,用/source-charset指定正确的编码,如果源代码是UTF-8格式,最好加上BOM头让VS可以识别,而不需要额外指定编码。