笔者最近用 Visual Stdio 时,发现一个问题,在某一次写完语言进行编绎运行时,出现了以下错误:
C2001错误:变量中有换行符
C2413错误:语法错误 缺少")"(在"else"的前面)
C4819警告:该文件包含不能在当前代码页(936)中表示的字符。请将文件保存为 Unicode 格式防止数据丢失
看下代码并没有什么错误,笔者查询后,正如警告那样是保存文件编码格式问题。如何解决呢 ,就是将源文件保存为 带签名的 UTF-8 的 Unicode 格式。
文件菜单下的 保存 按钮好像不能自定义保存编码的格式,而且另存为也没有什么用,只是保存不同后缀名的文件,总之不能解决这个编码问题。
如何解决:
首先要找到 高级保存选项 ,当然默认不是在菜单下显示的,需我们手动去设置。在 工具 -> 自定义 -- 命令
菜单栏的右侧下拉列表中选择 文件 菜单(当然啦 这个没有要求 你想在哪添加这命令都行 比如直接在菜单栏上添加 一般我们将此放在 文件 菜单下)
点击右侧添加命令,在左侧的类别框中找到 文件 选定,然后在右侧框命令列表找到 高级保存选项 ,大概在 2/3 的位置处。
确定后就可以在你所设置的位置找到这个 高级保存选项 命令了。
如笔者这样,当前保存的编码格式为 Unicode (UTF-8 无签名)- 代码页 65001 是 Unicode 编码保存的 没错,但是吧,这个无签名的 UTF-8 就是问题了。
将其更改为列表中的第二项 Unicode (UTF-8 带签名) - 代码页 65001 这样保存后再去编译运行之前的代码,OK啦,没问题。
出现这个问题,以笔者个人的推测可能是输入了一些特殊的字符,然后直接编译运行,使得 Visual Stdio 以它的判断来保存文件及编码格式,这些特殊字符就可能被视为无签名的 UTF-8 格式啦。