问题描述:
在vscode运行一个简单的java程序:无输入、输出一些中文,结果出现了乱码如下图:
寻找方法:
在经历了网上各种解决方法都不行的悲剧时,我走上了自己解决的路。有的说修改vscode的设置,有的说在终端输入chcp等(这个方法是行的,但它只是一个暂时生效的方法)。
当然在这个过程中积累了许多有用的知识:
1.在终端中输入chcp可查看当前代码页编号(即采用的编码方式)
2.输入chcp (相应的编号)可改变编码方式
3.GBK2312的代码页编号是936,UTF-8的代码页编号是65001
如下图:
问题解决:
可以看到运行该java程序后终端出现了以下内容
ctrl+左键打开launcher.bat这个文件出现以下内容:
可以看到chcp对应的值为65001,将它修改为936(具体值可打开系统自带cmd输入chcp获得),保存,重新运行程序,问题解决!
问题总结:
在cmd和java process console中输入chcp得到不同的值,出现这个问题的原因是vscode中的java process console默认编码为65001(UTF-8)而系统自带cmd默认为936(GBK2312)代码内的中文编码应该是936,故出现乱码。
补充:vscode每次更新后launcher文件里的值会变回65001,需再改成936