VScode运行Java时终端输出乱码

本文最后更新于:2024年3月20日 中午

前言

java运行时终端输出乱码

备忘录

说明

前一阵子,使用vscode运行简单的java程序。因为比idea打开快捷方便点,写写小程序还是满舒服的。但是后来使用时发现会出现这种情况:”输入中文后,输出中文会乱码或者不显示”。这一看就是老问题了,编码问题。

解决办法

从几个角度来进行寻找解决办法:windows系统编码vscode的文件编码java运行时编码相关的参数设置

1. windows系统编码:

中国地区默认GBK我看见网上许多人说改为utf-8即可。我改了,没起作用,估计是我操作有问题。

2. vscode的文件编码

vscode的文件file.encoding默认是utf-8。这是新建文件后默认的初始编码。
(我试过无论文件编码是在UTF-8下还是GBK下,只要当前中文显示无乱码,在输出控制台后都没有乱码。比如System.out.println(“来啊”))
暂时保持文件编码不变为utf-8。如果出现乱码就进行一下将其编码也改为GBK,与系统编码保持一致。
vscode设置当前文件的编码很简便,底部栏切换即可)

3 java运行时编码相关的参数设置

在vscode里安装那几个插件后,一般运行java文件方式是run without debugging。我观察到在运行时,默认的编码是utf-8

但是考虑到vscode运行调用的是windows的cmd或者powershell终端,但是其运行终端编码使用chcp命令查询又是默认的UTF-8。知道中文的windows系统编码默认GBK的情况下,可以不用理会其终端为什么默认UTF-8,尝试将运行时的编码设置为GBK。

4. 打开Run下的Open Configurations

5. 添加编码参数 “encoding”: "GBK"


再运行就发现乱码消失了

总结

其他方法试了一些,只是没成功。这个解决方法的思路就是将运行时的编码参数设置成与windwos编码一样都是GBK,来实现中文输出的乱码问题,如果还是乱码再vscode的文件编码设置成GBK。至于为什么不把所有编码都设置为UTF-8,你懂的。
建议还是idea,不必为这些问题烦心。