解决Ubuntu下Java编译乱码问题,需从系统环境、Java配置和代码层面入手,具体步骤如下:
设置系统字符编码为UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
/etc/default/locale
文件,添加以下内容后保存并重启:LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
(若需中文支持,可将 en_US
替换为 zh_CN
)配置Java编译和运行参数
javac -encoding UTF-8 YourJavaFile.java
java -Dfile.encoding=UTF-8 YourJavaClass
安装中文字体(可选)
若乱码涉及中文显示,需安装中文字体包:
sudo apt-get install ttf-wqy-zenhei
并在 $JAVA_HOME/jre/lib/fonts
下创建 fallback
目录,链接字体文件(如 wqy-zenhei.ttc
)。
检查代码文件编码
// -*- coding: UTF-8 -*-
file -i YourJavaFile.java
命令确认文件编码是否为UTF-8。验证终端显示
编译运行后,若终端输出乱码,检查终端本身编码是否为UTF-8(可在终端设置中调整),或通过 echo $LANG
确认环境变量生效。
关键点:确保系统环境、Java运行参数、文件编码三者一致为UTF-8,优先通过修改系统配置文件和编译参数解决,避免依赖临时设置。