IntelliJ IDEA 中文乱码需全链路统一 UTF-8 编码:①三处文件编码(Global、Project、Properties)均设为 UTF-8;②Java 编译器添加 -encoding UTF-8 参数或配置 Maven sourceEncoding;③终端改用 UTF-8 兼容 Shell 并设置输出编码;④Git 启用 core.quotePath false 和 core.precomposeUnicode true。

IDEA 默认编码不是 UTF-8?改它
IntelliJ IDEA 新建项目时,File Encoding 很可能默认是 GBK(Windows)或 UTF-8(macOS/Linux),但项目实际读取源码时若编码不一致,会出现中文乱码、编译报错(如 Illegal character: '\uFFFD')、注释变方块等问题。
必须统一三处编码设置:
-
Settings > Editor > File Encodings > Global Encoding→ 设为UTF-8 -
Settings > Editor > File Encodings > Project Encoding→ 设为UTF-8 -
Settings > Editor > File Encodings > Default encoding for properties files→ 设为UTF-8(否则application.properties中中文会乱码)
改完后,已打开的文件右下角会显示当前编码,点击可临时转换;建议勾选 Transparent native-to-ascii conversion,让 IDEA 自动把 .properties 文件里的中文转成 \u4f60\u597d 形式,避免运行时报错。
Java 编译器编码不匹配?加参数
即使 IDEA 界面设了 UTF-8,javac 编译器仍可能用系统默认编码读源码。尤其 Windows 上 JDK 默认用 GBK,会导致 String s = "你好"; 编译失败。
立即学习“Java免费学习笔记(深入)”;
解决方法是强制指定编译编码:
-
Settings > Build > Compiler > Java Compiler > Additional command line parameters→ 填入-encoding UTF-8 - 或者在 Maven 项目中,确保
pom.xml里有:UTF-8
注意:Maven 的 sourceEncoding 只影响 Maven 插件(如 maven-compiler-plugin),不影响 IDEA 内置编译器,所以两者都要配。
终端(Terminal)输出中文乱码?连带调
IDEA 内置 Terminal 运行 Java 程序时,如果控制台打印中文是乱码(如 ???),不是代码问题,而是终端本身编码没对齐。
Windows 用户最常踩坑:
- IDEA Terminal 默认用
cmd.exe,而chcp 936(GBK)和 Java 的 UTF-8 输出冲突 - 解决方案:
Settings > Tools > Terminal > Shell path改为pwsh.exe(PowerShell)或git-bash.exe,并确保其启动时编码为 UTF-8 - PowerShell 下可加启动命令:
$OutputEncoding = [System.Text.UTF8Encoding]::new()
macOS/Linux 用户一般无此问题,但若用了自定义 shell 配置(如 zshrc 中设置了 LANG=C),也要改成 LANG=en_US.UTF-8。
Git 提交后中文文件名变问号?别漏这一项
IDEA 里文件名含中文,Git 提交后在命令行 git status 显示 \344\275\240\345\245\275.java 或直接是问号,说明 Git 本身没启用 UTF-8 文件名支持。
这不是 IDEA 配置能解决的,必须在系统级设置 Git:
- 全局开启:
git config --global core.quotePath false - 再执行:
git config --global core.precomposeUnicode true(macOS 必需) - Windows 用户建议额外运行:
git config --global core.autocrlf true,避免换行符干扰编码识别
改完后,已暂存的乱码文件名需先 git rm --cached,再 git add 重新录入 —— 否则旧的编码状态会一直残留。
真正麻烦的是跨团队协作:只要有一人没配对,中文路径就可能在 CI 或他人机器上出问题。编码这事,单点配置没用,得全链路对齐。










