You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code终端无法正确打印Java代码中的特殊字符求助

解决VS Code中Java输出Unicode字符乱码的问题

问题分析

你的代码在外部终端通过chcp 65001切换编码后能正常显示,但VS Code内运行/调试时乱码,核心原因是:

  1. VS Code集成终端默认编码未设置为UTF-8,且后续手动执行chcp 65001无法影响已启动的Java进程编码环境
  2. Java编译/运行时未明确指定UTF-8编码,导致系统默认编码(Windows下多为GBK)与终端编码不匹配

解决方案

1. 配置VS Code集成终端默认使用UTF-8编码

打开VS Code的设置文件(settings.json),添加以下配置:

// 设置终端编码为UTF-8
"terminal.integrated.encoding.windows": "utf-8",
// 让终端启动时自动执行chcp 65001
"terminal.integrated.profiles.windows": {
    "Command Prompt": {
        "path": ["${env:windir}\\System32\\cmd.exe"],
        "args": ["/k", "chcp 65001"]
    },
    "PowerShell": {
        "source": "PowerShell",
        "args": ["-NoExit", "/c", "chcp 65001"]
    }
}

配置完成后重启VS Code终端,通过chcp命令验证,显示活动代码页: 65001即为生效。

2. 编译Java时指定UTF-8编码

创建或修改.vscode/tasks.json文件,配置编译任务时添加-encoding UTF-8参数,确保编译器以UTF-8解析源码:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "javac",
            "type": "shell",
            "command": "javac",
            "args": [
                "-encoding",
                "UTF-8",
                "${file}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$javac"
        }
    ]
}

3. 运行/调试时指定Java虚拟机输出编码

  • 运行代码:在tasks.json中添加运行任务,指定-Dfile.encoding=UTF-8参数,让Java程序以UTF-8输出内容:
{
    "version": "2.0.0",
    "tasks": [
        // 保留上述javac任务
        {
            "label": "java",
            "type": "shell",
            "command": "java",
            "args": [
                "-Dfile.encoding=UTF-8",
                "${fileBasenameNoExtension}"
            ],
            "dependsOn": ["javac"],
            "problemMatcher": []
        }
    ]
}
  • 调试代码:创建或修改.vscode/launch.json文件,添加vmArgs参数指定编码:
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Launch App",
            "request": "launch",
            "mainClass": "App",
            "vmArgs": "-Dfile.encoding=UTF-8"
        }
    ]
}

4. 确保终端字体支持Unicode字符

如果部分字符仍显示异常,检查VS Code终端的字体设置,在settings.json中配置支持Unicode的字体:

"terminal.integrated.fontFamily": "Consolas, 'Microsoft YaHei', 'Segoe UI'"

验证

完成所有配置后,重新编译并运行你的Java代码,终端应能正常显示名 é à è €。

内容的提问来源于stack exchange,提问作者Tetex Corp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:15:13