vscode java乱码问题解决

VSCODE中文乱码

说明

先说明我的VSCODE已经安装了Package for Java的全套插件和 Code Runner插件,环境也已经是配好了的。
我之前已经运行了许多c代码,也没有中文乱码的问题。

问题

/*
 * @Author: poorjack
 * @Date: 2021-10-07 23:49:55
 * @LastEditTime: 2021-10-08 01:00:28
 * @LastEditors: poorjack
 * @Description: 
 * @FilePath: \code2021\LinkedList.java
 * 内卷要开始加速了( •̀ ω •́ )✧
 */


public class LinkedList {

	public static void main(String[] args) {
		System.out.println("Hello World! 你好");
	}

}


这是输出

[Running] cd "f:\WORKSPACE\VSCode\LEARN\code2021\" && javac LinkedList.java && java LinkedList
LinkedList.java:8: ����: ���� GBK �IJ���ӳ���ַ� (0x80)
 * 内卷要开始加速了( •�? ω •�? )�?
                   ^
LinkedList.java:8: ����: ���� GBK �IJ���ӳ���ַ� (0x81)
 * 内卷要开始加速了( •�? ω •�? )�?
                         ^
LinkedList.java:8: ����: ���� GBK �IJ���ӳ���ַ� (0xA7)
 * 内卷要开始加速了( •�? ω •�? )�?
                             ^
3 ������

[Done] exited with code=1 in 0.796 seconds

可以看到,代码编译失败了的,没有运行,只有报错。

一些解决方案

一些老哥认为是Vscode Terminal的问题,就是VSCODE虽然可以设置多个终端,比如cmd,powershell,wsl等,但是代码运行输出好像还是cmd,而cmd的默认编码是gkb。编码不同,就会产生乱码。
一些热门的帖子就是这样做的,也有很多人解决了问题:
改变CMD的编码格式的帖子
问题是:

  • VSCODE还在快速更新,配置语法会变化
  • 不是所有人都能成功

从code runner入手

在学java时,一般就会遇到一些乱码问题:
解决java命令运行时乱码的帖子
-encoding utf-8就是在编译前对文件用utf-8重新编码。
而code runner就是帮我们自动地在命令行输入这些编译和运行的代码,如果能把-encoding utf-8加入这些命令就可以了。

在settings.json里配置

在用户的json文件添加:

"code-runner.executorMap": {
	 "java": "cd $dir && javac -encoding utf-8 $fileName && java $fileNameWithoutExt",
        
    },

看看效果

[Running] cd "f:\WORKSPACE\VSCode\LEARN\code2021\" && javac -encoding utf-8 LinkedList.java && java  LinkedList
Hello World! ���

[Done] exited with code=0 in 1.021 seconds

成功输出,但是输出了乱码。
在改为如下:

"code-runner.executorMap": {
        "java": "cd $dir && javac -encoding utf-8 $fileName && java -Dfile.encoding=UTF-8 $fileNameWithoutExt",
        
    },

支持原创,多多点赞

补充:

Java还有第三种乱码,就是编译报错时,会有乱码。
而且以上方法不能解决。

很多老哥的办法时选择
设置runInTerminal,就是不在OUTPUT里输出。
这不仅影响Java,还影响其他语言。

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值