踩坑经历:

这是一个向文件中写入文字(中文,在将文件中文字读取出来的代码。读取出来的结果是符号码

这个问题在网上找了很多的解决办法,都没有完全解决。

其实要不出现乱码,就要保持控制台编码和源代码编码相一致

第一步,查看自己本机的系统控制台编码:

在系统控制台上去查看当前代码页,win+r 输入 cmd,右击控制台上边框打开属性。

可以看到本机代码页是 936,记住这个代码页。

第二步,在 visual studio 控制台中以同样的方式查看代码页:

可以看到当前的调试控制台的代码页为 65001 也就是 UTF-8编码。 

这里出现了和系统控制台编码不一致的问题。

第三步,接下来检查 visual studio 对文件保存的编码格式:

可以看到文件保存的编码格式为 GB2312-936,与系统控制台编码格式相同。

ps:如果没有这个高级保存选项可以在上边框工具中添加。

第四步,开始修改编码:

win + r 输入 regedit ,打开注册表编辑器。

计算机\HKEY_CURRENT_USER\Console

打开这个目录,在里面找到与 visual studio 相关的选项,很好找到。

可以看到 CodePage 的十进制数值为 65001,双击打开,对其 十进制 数值进行修改,修改成系统控制台相同的代码页。

中文正常显示。 

上面的方法修改起来有点麻烦,但后面就不需要有别的操作,当然也有别的方法,例如强行指定文件执行。

使用代码,指定程序执行时使用的编码和调试窗口编码一致,也可以解决乱码问题。

#pragma execution_character_set("UTF-8")

这里的UTF-8需要修改为调试控制台的编码(代码页)

PS:当然出现乱码的也可能是其他的原因,也可能是勾选了 Beta 版本,这个选项勾选也可能会出现乱码

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐