VS Code中Java无法打印中文字符,Python可正常输出求助
Java VS Code终端中文输出问号排查方案
1. 给Java进程添加JVM编码参数
System.setProperty("file.encoding", "UTF-8")是运行时设置,可能晚于JVM初始化编码阶段,直接在启动配置里指定JVM参数更有效:
- 打开VS Code的
launch.json(运行和调试面板点击齿轮图标) - 在
configurations的args字段添加"-Dfile.encoding=UTF-8",示例配置:
{ "version": "0.2.0", "configurations": [ { "type": "java", "name": "Current File", "request": "launch", "mainClass": "${file}", "args": ["-Dfile.encoding=UTF-8"] } ] }
2. 同步VS Code终端编码设置
虽然编辑器显示UTF-8,但终端编码可能未同步:
- 按
Ctrl+,打开设置,搜索terminal.integrated.encoding.windows,确保值设为utf-8 - 检查
terminal.integrated.fontFamily是否为Consolas,确认字体支持中文显示
3. 强制Windows控制台切换UTF-8代码页
Windows默认控制台代码页可能未自动切换到UTF-8,即使区域设置已开启:
- 打开CMD,执行
chcp 65001切换到UTF-8代码页 - 在该CMD窗口进入项目目录,用
javac和java命令手动编译运行代码,验证是否正常 - 如果手动运行正常,可在VS Code设置里配置终端启动自动切换:
搜索terminal.integrated.profiles.windows,修改CMD的args为["/K", "chcp 65001"],示例:
"terminal.integrated.profiles.windows": { "Command Prompt": { "path": ["${env:windir}\\System32\\cmd.exe"], "args": ["/K", "chcp 65001"] } }
4. 确认Java文件本身编码
确保.java文件以UTF-8保存:
- 打开Java文件,点击右下角编码标识,选择「通过编码重新打开」,确认选UTF-8
- 若之前文件是其他编码,重新保存为UTF-8后再编译运行
5. 排查JDK与插件干扰
- 打开VS Code设置,搜索
java.configuration.runtimes,切换到不同版本JDK(如OpenJDK 11/17),部分旧JDK对UTF-8支持存在差异 - 禁用终端美化类插件,测试是否恢复正常输出
内容的提问来源于stack exchange,提问作者Rikki Koppolu
相关产品推荐
相关产品推荐

