必须同时将global encoding、project encoding和default encoding for properties files三处设为utf-8,缺一不可;否则新建文件仍可能用gbk或iso-8859-1导致中文乱码,且需勾选transparent native-to-ascii conversion并重启webstorm生效。

必须同时改 Global Encoding、Project Encoding 和 Default encoding for properties files 三处为 UTF-8,缺一不可;否则新建文件仍可能用 GBK(Windows)或 ISO-8859-1(Linux/macOS),中文立刻乱码。
File Encodings 里三个 UTF-8 必须全设对
WebStorm 的编码策略是分层 fallback:先看文件 BOM 或 <meta charset>,再查 Project Encoding,最后才用 Global Encoding。只改其中一项等于白改。
-
Global Encoding:控制所有新项目、新建文件的默认读取方式,必须设为UTF-8 -
Project Encoding:决定当前项目下新建文件的保存编码,也参与已有文件读取,必须同步设为UTF-8 -
Default encoding for properties files:专管.properties文件,不设这个,msg=你好会被自动转成msg=\u4f60\u597d,且 IDE 不提示 - 必须勾选
Transparent native-to-ascii conversion——这是开关,关了就无法正确读写中文键值 - 改完点
OK后建议完全退出 WebStorm(包括托盘进程),再重启;部分设置热加载不可靠
右下角状态栏点击后选 Reload 还是 Convert?
打开一个显示方块或问号的文件,右下角会显示当前识别的编码(比如 GBK 或 ISO-8859-1)。点击它弹出列表,直接敲 utf 或 gbk 快速定位。
- 选带 ⚠️ 的编码(如
GBK)时,会弹窗问你选Reload还是Convert -
Reload:仅让编辑器按该编码重新解析内容,磁盘文件一字不动——适合安全预览,确认是否真能正确解码 -
Convert:把文件内容按新编码重写进磁盘——必须确认原始内容确实是那个编码,否则中文变问号或方块 - 一旦执行过
Convert,WebStorm 就会把这个文件和该编码绑定,下次打开不再瞎猜 - 已有文件不会因全局设置变更而自动转码;
Convert Files to UTF-8批量操作时,务必避开node_modules/、vendor/等第三方目录,只处理自己写的代码(如src/、app/)
Terminal 和 Run Configuration 输出还是乱码?
编辑器里全设对了,不代表终端输出就正常——Terminal 和运行配置走的是 JVM + 系统 Shell + IDE 渲染三层逻辑,和 File Encodings 完全无关。
- Windows:注册表路径
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor下新增字符串值Autorun,值为chcp 65001 - macOS/Linux:编辑
bin/webstorm.sh,在#!/bin/sh下第一行紧贴插入:export LANG=zh_CN.UTF-8和export LC_ALL=zh_CN.UTF-8 - 所有平台:编辑
bin/webstorm64.vmoptions(Windows/macOS)或bin/webstorm.vmoptions(Linux),追加一行:-Dfile.encoding=UTF-8 - Run Configuration → Environment Variables 中也必须显式添加:
file.encoding=UTF-8(IDEA 系列常漏这一层) - 验证是否生效:在 Terminal 里执行
java -XshowSettings:properties -version 2>&1 | grep file.encoding,输出必须是UTF-8
最容易被忽略的是:批量 Convert Files to UTF-8 时源编码选错,或误把 node_modules/ 一起转;还有就是 Terminal 的 chcp 65001、VM 参数 -Dfile.encoding=UTF-8、运行配置里的 file.encoding 环境变量,三者必须全部到位——少一个,console.log("中文") 就照旧吐方块。











