在 Ubuntu 下用 javac 编译 Java 出现乱码,通常不是系统坏了,而是字符编码不一致导致的。下面按「最常见 → 进阶」给你一套解决方案。
乱码一般出现在两种地方:
比如:
UTF-8javac 默认按系统编码(可能是 GBK / ANSI_X3.4)javac -encoding UTF-8 Hello.java
✅ 这是最常用、最有效的办法
如果你用 IDE(IDEA / Eclipse),也要设置:
locale
正常应该是:
LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8
如果不是 UTF-8,可以设置:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
(永久生效可写入 ~/.bashrc)
java -Dfile.encoding=UTF-8 Hello
例如:
System.out.println("中文");
如果乱码:
✅ 保证三点一致:
javac -encoding UTF-8终端检查:
echo $LANG
如果你用的是:
xterm请设置:
# 编译
javac -encoding UTF-8 xxx.java
# 运行
java -Dfile.encoding=UTF-8 xxx
# 系统
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
你可以告诉我:
java -version)我可以直接帮你定位 ✅