mac上idea的file encodings设置必须全调成utf-8,包括global encoding、project encoding和default encoding for properties files,并勾选transparent native-to-ascii conversion;同时在idea.vmoptions中添加-dfile.encoding=utf-8(大小写敏感),并在run/debug configurations及maven/gradle配置中同步设置utf-8编码,否则中文会乱码。

Mac上IDEA的File Encodings设置必须全调成UTF-8
Mac版IDEA默认可能沿用系统区域设置(如GBK或ISO-8859-1),导致新建文件、读取已有文件时直接乱码。这不是“显示问题”,而是IDE从底层就用错编码打开文件。
关键操作路径:IntelliJ IDEA → Preferences → Editor → File Encodings
-
Global Encoding和Project Encoding必须都选UTF-8,不能一个选一个不选 -
Default encoding for properties files同样设为UTF-8(尤其影响application.properties、messages_zh_CN.properties等) - 勾选
Transparent native-to-ascii conversion——这是Java系.properties文件的刚需,不勾它,中文注释会变成空白或问号,即使文件本身是UTF-8也无效
idea.vmoptions里加-Dfile.encoding=UTF-8才管全局
仅改IDE界面设置,对JVM启动过程无效。IDE自身、Maven、Gradle、Tomcat这些子进程仍按系统默认编码跑,一输出中文就崩。
正确做法:用 Help → Edit Custom VM Options… 打开 idea.vmoptions 文件(Mac上路径通常是 ~/Library/Caches/JetBrains/IntelliJIdea202x.x/idea.vmoptions),在末尾追加一行:
-Dfile.encoding=UTF-8
注意:
- 不要写成 -Dfile.encoding=utf-8(大小写敏感,部分JVM版本会忽略小写)
- 不要加空格或中文标点
- 修改后必须重启IDEA,否则不生效
控制台输出仍是乱码?检查Run/Debug Configurations里的VM选项
即使全局编码设对了,单个运行配置仍可覆盖JVM参数。特别是Spring Boot或Web项目,控制台日志乱码八成出在这里。
操作路径:Run → Edit Configurations… → 选中你的启动项 → Configuration → VM options
- 这里填的参数优先级高于
idea.vmoptions,务必加上-Dfile.encoding=UTF-8 - 如果用了外置Tomcat,还要额外确认:
Deployment → Tomcat Server → VM options也加这一行 - 若项目含Maven构建步骤(如
mvn compile),需同步检查:Build, Execution, Deployment → Build Tools → Maven → Runner → VM Options
Gradle/Maven项目编译报GBK错误?补encoding参数
编译时报类似 error: unmappable character (0xE4) for encoding GBK,说明javac没收到UTF-8指令,仍在用系统默认GBK解码源码。
对应修复方式:
- Gradle项目:在
build.gradle根目录下加
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' }
- Maven项目:在
pom.xml的maven-compiler-plugin配置里加
<configuration><source>17</source><target>17</target><encoding>UTF-8</encoding></configuration>
这两处不设,就算IDE显示正常,编译器仍可能把中文当乱码扔掉。
真正容易被忽略的是:Transparent native-to-ascii conversion 勾选状态和 idea.vmoptions 的大小写。前者漏勾,.properties里中文注释永远不显示;后者写成小写,整个JVM编码设置形同虚设。











