1. 检查并设置系统默认编码
CentOS系统默认编码需与Java编译/运行时的编码一致(推荐UTF-8)。通过locale命令查看当前编码设置,若LANG、LC_ALL等变量未设置为UTF-8(如en_US.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默认编码
通过-Dfile.encoding参数设置JVM的默认字符编码,确保程序运行时正确解析字符:
java -Dfile.encoding=UTF-8 YourMainClass
可将此参数添加到启动脚本(如startup.sh)中,避免每次运行都手动输入。
4. 配置环境变量全局生效
通过设置JAVA_TOOL_OPTIONS环境变量,让所有Java程序默认使用指定编码:
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
将上述命令添加到~/.bashrc或~/.bash_profile文件中,执行source ~/.bashrc使更改永久生效。
5. 检查并转换Java源文件编码
确保Java源文件本身以正确编码(如UTF-8)保存。可使用以下工具检查和转换:
:set fileencoding查看当前编码,若需转换,执行:set fileencoding=utf-8并保存;iconv -f GBK -t UTF-8 original.java -o converted.java
转换后使用新文件编译。6. 检查IDE编码设置(若使用IDE)
若通过IntelliJ IDEA、Eclipse等IDE开发,需确保IDE的编码设置与系统一致:
File -> Settings -> Editor -> File Encodings,将Global Encoding、Project Encoding设置为UTF-8,Default encoding for properties files也需设置为UTF-8;Window -> Preferences -> General -> Workspace,将Text file encoding设置为UTF-8。