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;