先说明我的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 LinkedListLinkedList.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 LinkedListHello 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,还影响其他语言。