[转载:原文来自--https://blog.csdn.net/weixin_39684284/article/details/79025291]
显示乱码的主要原因是因为中文在代码中的编码与控制台的编码不一致,比如代码文件的编码方式是GB2312(即GBK),而控制台编码是UTF-8时,输出中文就会产生乱码
问题解决
从网上搜了一些关于怎么解决乱码问题的帖子或者blog,主要有以下几种方式,各人情况不一样,可参考
方式1
-
在VS2017扩展和更新中下载ForceUTF8的扩展(下载安装需要重启VS2017,之后查看该扩展是否启用,如果在设置中关闭
自动更新拓展
的话,还需要打开该选项,再重启VS),有带bom签名的和无bom的,个人喜欢utf-8无bom,因为全平台可用,不用转码 -
之后在
高级保存选项
里,将文件保存为UTF-8无bom(65001),
默认情况下vs2017中高级保存选项
在菜单栏和工具栏的找不到的,所以首先将该选项找出来再进行操作,如下:- 在工具-》自定义中,选择
命令
标签栏,在菜单栏中选择编辑
(个人习惯将高级保存选项
放在编辑
菜单) - 之后点击
添加命令
进入命令列表;在添加命令
窗口,将类别
列表拉到最底部,找到文件
,点击后查看命令
列表,拉到接近底部位置,找到高级保存选项
,点击确定,之后关闭 - 在菜单栏
编辑
中,即可看到高级保存选项
,点击后即可进行编码设置
- 在工具-》自定义中,选择
-
此时,可以查看windows命令窗口-》属性窗口可以看到编码为UTF8,同时,代码文件的编码格式也为UTF8(65001),理论上编码一致后,重新编译程序即可正常显示。
如果无法正常显示可以看看方式2,解决问题,我也是采用方式2的方式解决
方式2
- 既然改成utf8无法正常显示,那么将编码都改为GB2312(即GBK)编码吧。
- 在VS2017
高级保存选项
中,将编码改为简体中文GB2312
,保存后重新编译 - 打开windows命令窗口,选择
默认值
(是默认值,不是属性!),将默认代码页改为936 GBK,确定,关闭窗口 - 重新打开windows命令窗口,右键
属性
(是属性,不是默认值!),查看默认代码页,如果默认代码页也是936 简体中文
的话,那么ok,修改成功,运行程序即可; - 如果修改了默认值后,默认代码页没有修改成功,还是之前的编码(我就是遇到了这种情况),那么就通过修改注册表的方式来手动修改为GBK的格式吧。
- 通过regedit打开注册表,找到
HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe
- 1
- 之后程序正常运行