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

Git Bash运行Java程序时非拉丁字符显示乱码问题求助

解决Windows Git Bash中Java输出西里尔文乱码问题

成因

  1. 编译阶段编码不匹配:若Java源文件以UTF-8编码保存,但javac默认采用Windows系统编码(通常是GBK/CP936)编译,会导致硬编码的西里尔文字符被错误转码,最终字节码中的字符串本身就存在错误。
  2. 运行阶段控制台编码冲突:Git Bash虽默认使用UTF-8,但Java的System.out会继承底层Windows控制台的非UTF-8编码,当Java输出UTF-8格式的西里尔文时,控制台用不兼容的编码解析,就会出现乱码方块。

解决方法

步骤1:编译时指定正确编码

编译源文件时,明确指定编码为UTF-8,匹配源文件的保存编码:

javac -encoding UTF-8 Test.java

步骤2:运行时强制Java输出UTF-8

运行程序时,通过系统属性让Java使用UTF-8输出内容,适配Git Bash的编码:

java -Dfile.encoding=UTF-8 Test

额外确认:锁定Git Bash的UTF-8编码

若上述操作后仍有问题,执行以下命令强制Git Bash使用UTF-8编码:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

测试代码示例:

class Test {
    public static void main(String[] args) {
        System.out.println("Тестим кириллицу в консоли");
    }
}

内容的提问来源于stack exchange,提问作者Mint 妬み

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 10:14:54