核心是统一UTF-8编码:①IDEA中全局、项目、properties编码设为UTF-8并勾选透明转换;②编译时加-encoding UTF-8参数;③JVM启动加-Dfile.encoding=UTF-8;④终端执行chcp 65001。

开发工具里中文乱码,核心是编辑器、项目、文件三者编码设置不统一,尤其在 IntelliJ IDEA 或 Eclipse 中最常见。关键不是“改一个地方”,而是让整个链路保持 UTF-8 一致。
IDE 编辑器编码设置(最常被忽略)
IntelliJ IDEA 默认可能沿用系统编码(Windows 常为 GBK),导致打开 UTF-8 文件显示乱码:
- 打开 File → Settings → Editor → File Encodings
- 把 Global Encoding、Project Encoding、Default encoding for properties files 全部设为 UTF-8
- 勾选 Transparent native-to-ascii conversion(对 .properties 文件必需)
- 如果已有乱码文件,右下角状态栏会显示当前编码,点击后可选择 Reload as UTF-8 或 Convert to UTF-8
Java 源文件编译乱码(javac 报错或字符串变问号)
即使文件是 UTF-8,javac 在 Windows 下默认按 GBK 解析,导致中文字符串编译失败或运行时乱码:
- 在 IDEA 中:进入 Settings → Build → Compiler → Java Compiler,勾选 Use compiler from module target bytecode version,再确认 Settings → Build → Java Compiler → Additional command line parameters 填入 -encoding UTF-8
- 命令行编译时必须显式加参数:
javac -encoding UTF-8 Hello.java - Maven 项目需在
pom.xml中声明:<project.build.sourceencoding>UTF-8</project.build.sourceencoding>
控制台/终端输出中文乱码(运行时 System.out 显示 □ 或 ?)
IDE 内置终端(如 IDEA Terminal)或 Windows cmd 默认编码非 UTF-8,导致程序输出无法正确渲染:
立即学习“Java免费学习笔记(深入)”;
- IDEA 终端:在 Settings → Tools → Terminal 中,把 Shell path 改为
cmd.exe /k chcp 65001(启用 UTF-8) - Windows cmd 手动执行:
chcp 65001(临时生效) - 更彻底方案:启动 JVM 时加参数
-Dfile.encoding=UTF-8,例如:java -Dfile.encoding=UTF-8 MyApp
Servlet / Web 页面中文乱码(浏览器显示乱码)
不是 IDE 问题,但常在开发阶段暴露,需前后端协同处理:
- 请求端:HTML 表单加
accept-charset="UTF-8";AJAX 请求头设Content-Type: application/json;charset=UTF-8 - 服务端(Servlet):在读取参数前调用
request.setCharacterEncoding("UTF-8");响应前设response.setContentType("text/html;charset=UTF-8") - Spring Boot 项目:在
application.properties加server.servlet.encoding.charset=UTF-8和server.servlet.encoding.force=true


















