最直接有效的方式是在pom.xml的中声明UTF-8和UTF-8,并显式配置maven-compiler-plugin的UTF-8,确保源码读取、编译及报告生成全程使用UTF-8,同时需同步设置IDE、终端及JVM编码以避免乱码。

最直接有效的方式是在 pom.xml 中通过 声明全局编码,并配合编译插件显式指定,确保 Maven 从读源码到生成字节码全程使用 UTF-8。
统一声明项目级编码属性
这是基础且推荐的配置方式,影响编译、资源处理、报告生成等多个环节:
-
:控制源码(UTF-8 .java)读取和编译时的字符编码 -
:保障 Javadoc、Site 报告等输出内容不乱码UTF-8
写在 标签下即可,无需额外插件:
显式配置 maven-compiler-plugin 编码
即使已设全局属性,部分旧版 Maven 或插件仍可能忽略,建议再在编译插件中双重确认:
在调试 Java 后端 API 故障时使用此技能,尤其适用于以下任务:分析日志、跨 Controller、Service 和 Mapper 层追踪请求、定位异常根因、检查 SQL 执行或参数流转,以及生成简洁的诊断结论与修复方案。
- 添加
到UTF-8 maven-compiler-plugin的 - 确保 JDK 版本兼容(如
/设为 8 或更高)
补充:资源文件与测试环节也需对齐
中文常出现在 resources 和单元测试中,这些环节若未设编码,仍会出问题:
-
资源过滤:在
下为每个加UTF-8 -
测试运行:用
maven-surefire-plugin时,在中加入-Dfile.encoding=UTF-8 -
Properties 文件:若含中文键值(如
messages_zh_CN.properties),还需加到UTF-8 maven-resources-plugin
配套环境别遗漏
Maven 配置只是链路一环,还需同步检查:
- IDE 设置:IntelliJ IDEA 中 File → Settings → Editor → File Encodings 全部设为 UTF-8,包括 Global/Project/Properties 三项
-
终端编码:Windows 用户执行
chcp 65001切换控制台为 UTF-8;Linux/macOS 通常默认 OK,但 CI 环境(如 GitHub Actions)需显式设置LANG=en_US.UTF-8 -
JVM 启动参数:若运行阶段仍有乱码(如日志、控制台输出),在 IDE 运行配置或
mvn spring-boot:run中补上-Dfile.encoding=UTF-8
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










