1. 检查并设置系统默认编码
CentOS系统的默认编码需与Java编译器编码一致(推荐UTF-8)。通过locale
命令查看当前编码,若输出不是en_US.UTF-8
或zh_CN.UTF-8
等UTF-8编码,需进行调整:
export LANG=en_US.UTF-8
、export LC_ALL=en_US.UTF-8
;/etc/locale.conf
文件,添加LANG=en_US.UTF-8
,保存后重启系统或运行source /etc/locale.conf
使更改生效。2. 编译时指定Java源文件编码
使用javac
命令的-encoding
参数明确指定源文件的编码格式(如UTF-8),避免编译器因默认编码不匹配导致乱码。例如:
javac -encoding UTF-8 YourJavaFile.java
若源文件是其他编码(如GBK),需将UTF-8
替换为对应编码(如-encoding GBK
)。
3. 运行时指定JVM默认编码
在运行Java程序时,通过-Dfile.encoding
参数设置JVM的默认字符编码,确保程序读取/输出时使用正确编码。例如:
java -Dfile.encoding=UTF-8 YourMainClass
或在启动脚本(如startup.sh
)中添加该参数,避免每次运行都需手动指定。
4. 检查并转换Java源文件编码
确保源文件本身以UTF-8编码保存(避免使用记事本等工具默认保存为ANSI/GBK编码)。可使用文本编辑器(如vim、VS Code)查看和修改编码:
:set fileencoding
查看当前编码,若不是UTF-8,执行:set fileencoding=utf-8
并保存(:wq
);5. 配置IDE的编码设置(若使用IDE)
若通过IntelliJ IDEA、Eclipse等IDE开发,需确保IDE的编码设置与系统/编译器一致:
File -> Settings -> Editor -> File Encodings
,将Global Encoding
、Project Encoding
、Default encoding for properties files
均设置为UTF-8;Window -> Preferences -> General -> Workspace
,将Text file encoding
设置为UTF-8。6. 安装中文字体(可选,解决显示问题)
若乱码表现为中文无法正常显示(而非编译错误),需安装中文字体(如宋体、黑体):
fontconfig
和mkfontscale
:sudo yum install -y fontconfig mkfontscale
;sudo mkdir -p /usr/share/fonts/chinese/TrueType
,将simsun.ttf
(宋体)、simhei.ttf
(黑体)等字体文件复制到该目录;sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv
;