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

Windows系统下设置Java默认编码为UTF-8无效的问题

Java默认编码修改为UTF-8的有效解决方法

一、修复java -Dfile.encoding=UTF8的执行错误

你输入的命令缺少主类名,正确格式应为:

java -Dfile.encoding=UTF-8 你的主类名

注意:参数取值用标准写法UTF-8(带横杠),而非UTF8,避免部分场景下的兼容问题。

二、让JAVA_TOOL_OPTIONS设置生效的关键

在Windows命令提示符或VS Code终端执行set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8后,必须关闭当前终端,重新打开新终端再运行程序,环境变量才会生效。

若要实现永久生效,可通过系统环境变量设置:

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「用户变量」或「系统变量」中新建变量:
    • 变量名:JAVA_TOOL_OPTIONS
    • 变量值:-Dfile.encoding=UTF-8
  • 保存后重启所有终端和VS Code,设置将全局生效。

三、验证编码生效的正确方式

不要仅依赖java -version的输出,需在代码中直接验证:

import java.nio.charset.Charset;

public class TestEncoding {
    public static void main(String[] args) {
        System.out.println("默认编码:" + Charset.defaultCharset());
        System.out.println("file.encoding参数值:" + System.getProperty("file.encoding"));
    }
}

编译运行后,若两项输出均为UTF-8,则设置成功。

四、VS Code调试时的额外配置

如果通过VS Code的「运行和调试」启动程序,需在launch.json中添加VM参数:

{
    "configurations": [
        {
            "type": "java",
            "name": "TestEncoding",
            "request": "launch",
            "mainClass": "TestEncoding",
            "vmArgs": "-Dfile.encoding=UTF-8"
        }
    ]
}

这样每次调试运行都会自动应用编码设置。

内容的提问来源于stack exchange,提问作者404-No Social Skills Found

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:43:17