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

最直接有效的方式是在 pom.xml 中通过 <properties></properties> 声明全局编码,并配合编译插件显式指定,确保 Maven 从读源码到生成字节码全程使用 UTF-8。
统一声明项目级编码属性
这是基础且推荐的配置方式,影响编译、资源处理、报告生成等多个环节:
-
<project.build.sourceencoding>UTF-8</project.build.sourceencoding>:控制源码(.java)读取和编译时的字符编码 -
<project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>:保障 Javadoc、Site 报告等输出内容不乱码
写在 <properties></properties> 标签下即可,无需额外插件:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
显式配置 maven-compiler-plugin 编码
即使已设全局属性,部分旧版 Maven 或插件仍可能忽略,建议再在编译插件中双重确认:
- 添加
<encoding>UTF-8</encoding>到maven-compiler-plugin的<configuration></configuration> - 确保 JDK 版本兼容(如
<source></source>/<target></target>设为 8 或更高)
补充:资源文件与测试环节也需对齐
中文常出现在 resources 和单元测试中,这些环节若未设编码,仍会出问题:
-
资源过滤:在
<build><resources></resources></build>下为每个<resource></resource>加<encoding>UTF-8</encoding> -
测试运行:用
maven-surefire-plugin时,在<argline></argline>中加入-Dfile.encoding=UTF-8 -
Properties 文件:若含中文键值(如
messages_zh_CN.properties),还需加<propertiesencoding>UTF-8</propertiesencoding>到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 大师之旅:从入门到精通的终极指南










