1. 检查并设置系统默认编码
CentOS系统的默认编码需与Java编译器编码一致(推荐UTF-8)。通过echo $LANG命令查看当前编码,若非en_US.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
若有多个文件,可一并指定:javac -encoding UTF-8 File1.java File2.java。此方法直接解决编译器与源文件编码不匹配的问题。
3. 运行时设置JVM默认编码
通过-Dfile.encoding参数设置JVM的默认字符编码,确保程序运行时正确解析字符。例如:
java -Dfile.encoding=UTF-8 YourMainClass
该方法适用于编译后运行时仍出现乱码的情况,覆盖JVM的默认编码设置。
4. 配置环境变量全局生效
通过设置环境变量,避免每次编译/运行都手动指定编码:
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"(对当前终端有效);~/.bashrc或~/.bash_profile文件中,执行source ~/.bashrc使更改生效。5. 检查并修正Java源文件编码
确保源文件本身以正确的编码(如UTF-8)保存。使用文本编辑器(如Vim)查看编码:
:set fileencoding,若显示非UTF-8(如GBK),需转换为UTF-8::set fileencoding=utf-8,然后保存文件(:wq)。6. 验证与调整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。