温馨提示×

centos下java编译乱码怎么办

小樊
35
2026-09-06 10:36:46
栏目: 编程语言

在 CentOS 下 Java 编译出现乱码,通常是系统字符集、终端字符集、Java 文件编码不一致导致的。可以按下面步骤排查和解决。


一、先确认系统字符集

locale

正常应类似:

LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

如果不是 UTF-8,建议修改为 UTF-8:

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

永久生效(CentOS 7):

localectl set-locale LANG=zh_CN.UTF-8

二、确认 Java 源文件编码

查看文件编码:

file -i YourFile.java

如果是 iso-8859-1gbk,而终端是 UTF-8,就会乱码。


三、编译时显式指定编码(最常用)

1️⃣ 使用 UTF-8 编译

javac -encoding UTF-8 YourFile.java

这是最推荐、最稳妥的方式

2️⃣ 如果是 GBK 文件

javac -encoding GBK YourFile.java

四、运行时也指定编码

运行 Java 程序时也建议指定:

java -Dfile.encoding=UTF-8 YourClass

五、IDE / 编辑器编码统一

如果你用:

  • vim
    :set fileencoding=utf-8
    
  • IntelliJ IDEA
    • File → Settings → Editor → File Encodings
    • 全部设为 UTF-8
  • Eclipse
    • Preferences → General → Workspace → UTF-8

六、常见错误示例

❌ 文件是 GBK,但系统 UTF-8,没指定编码:

javac Test.java

✅ 正确:

javac -encoding GBK Test.java

七、总结(速查)

编译不乱码三步走

  1. 系统用 UTF-8
  2. 源文件统一编码
  3. javac -encoding UTF-8

如果你愿意,可以把:

  • locale 输出
  • file -i xxx.java 结果
  • 报错截图或乱码内容

发给我,我可以帮你精准定位。

0