.properties文件中文显示为\u4f60\u597d,是因为java规范强制使用iso-8859-1编码解析,webstorm需单独设置“default encoding for properties files”为utf-8并启用transparent native-to-ascii conversion,否则自动转义;且jvm运行时也须显式指定file.encoding=utf-8,三者缺一不可。

为什么 .properties 文件中文总变成 \u4f60\u597d
不是 WebStorm 没读到中文,而是它默认用 ISO-8859-1 解析 .properties 文件——Java 传统规范要求,但现代开发基本不用。WebStorm 不会主动提醒你这个陷阱,只默默把 msg=你好 转成 msg=\u4f60\u597d,且不标警告。
Default encoding for properties files 必须设为 UTF-8
这个选项藏在 Settings / Preferences → Editor → File Encodings 最底部,和 Global Encoding、Project Encoding 并列,但作用独立:
- 它只影响
.properties文件的读写,其他类型文件完全无视 - 即使
Global和Project都是UTF-8,这里仍是ISO-8859-1,中文照样被转义 - 改完必须勾选
Transparent native-to-ascii conversion,否则 IDE 仍会强制转义(哪怕内容已经是 UTF-8) - 改完点
OK后建议重启 WebStorm,热加载对这个设置不可靠
已有 .properties 文件乱码了怎么办
别直接编辑或复制粘贴——那只会让转义更混乱。先看右下角状态栏显示的当前编码(比如 ISO-8859-1 或 GBK),再操作:
- 点击状态栏编码名 → 弹出列表中快速输入
utf定位到UTF-8 - 选中带 ⚠️ 的原始编码(如
GBK)→ 弹窗选Reload:预览是否能正确显示中文;确认无误后再选Convert -
Convert前务必确认「源编码」选对(比如原文件真是 GBK 就选 GBK),否则中文变方块 - 转换后 WebStorm 会把这个文件和
UTF-8绑定,下次打开不再猜
终端运行时中文还是乱码?和 .properties 编码设置无关
WebStorm 里 .properties 显示正常,不代表 Java 运行时能正确读取。JVM 默认不认 UTF-8 的 .properties,除非显式指定:
- 运行配置(
Run Configuration)→Environment Variables中加file.encoding=UTF-8 -
bin/webstorm64.vmoptions(macOS/Linux 是webstorm.vmoptions)末尾追加:-Dfile.encoding=UTF-8 - 如果用 Terminal 运行
java -jar,需手动执行chcp 65001(Windows)或确保 shell locale 是 UTF-8(macOS/Linux)
这三处漏掉任何一项,ResourceBundle.getBundle("i18n") 读出来的都是乱码或空值——和编辑器里怎么设毫无关系。











