答案是统一使用UTF-8编码。从源码保存、IDE设置、编译参数(javac -encoding UTF-8或Maven配置)、运行时系统属性(-Dfile.encoding=UTF-8)到外部资源处理全程保持UTF-8一致,确保中文正常显示,避免乱码与跨平台问题。

Java项目编码环境配置不当,容易导致中文乱码、编译失败或跨平台问题。关键在于统一源码、编译、运行和外部资源的字符编码。以下是具体配置方法。
确保源文件使用UTF-8编码
Java源代码文件应始终保存为UTF-8格式,避免特殊字符(如中文注释、变量名)出现乱码。
- 在IDE中设置默认文件编码为UTF-8:IntelliJ IDEA 和 Eclipse 都可在“File Encoding”选项中全局设置。
- 新建或导入项目时,检查每个模块的编码设置是否为UTF-8。
- 若使用文本编辑器编写.java文件,保存时手动选择“UTF-8”编码。
编译时指定编码参数
使用 javac 编译时,如果源文件含非ASCII字符,需显式声明编码方式。
- 命令行编译加入 -encoding UTF-8 参数:
javac -encoding UTF-8 MyProgram.java - Maven 用户在 pom.xml 中配置编译插件:
UTF-8
立即学习“Java免费学习笔记(深入)”;
运行时处理控制台输出乱码
程序运行中打印中文可能出现乱码,尤其在Windows CMD环境下。
- 启动Java程序时添加系统属性:
java -Dfile.encoding=UTF-8 MyProgram - 确保终端支持UTF-8:Windows推荐使用 PowerShell 或 WSL;Linux/macOS一般默认支持。
- 避免使用 System.out 直接输出未编码转换的内容,特别是读取外部文件时先按正确编码加载。
外部资源与配置文件编码一致
properties 文件、JSON、XML 等资源配置也应使用UTF-8。
- .properties 文件虽然默认ISO-8859-1,但可通过转义Unicode(如\u4e2d\u6587)支持中文,建议改用 XML 格式或 ResourceBundle 处理多语言。
- 读取文本文件时明确指定编码,例如使用 InputStreamReader 包装 FileInputStream 并传入 StandardCharsets.UTF_8。
基本上就这些。只要从编辑、编译到运行全程保持UTF-8一致,就能避免绝大多数编码问题。不复杂但容易忽略细节。










