WebStorm源码乱码需全局与项目编码同设UTF-8,并配置Properties文件编码及透明ASCII转换;乱码文件应通过状态栏选正确编码Reload或Convert;终端乱码需同步设置chcp、VM参数和运行环境变量。

WebStorm 里源码显示乱码,不是“没设编码”,而是它按 BOM、<meta charset> 或文件扩展名猜错了——你得主动告诉它该用什么编码读,而不是等它自动识别。
Global 和 Project Encoding 必须同时设为 UTF-8
只改其中一个,等于白改。WebStorm 读文件时有 fallback 链:先看文件自身 BOM 或 HTML/PHP 中的 <meta charset="gbk">,没有才用 Project Encoding,项目不存在时才 fallback 到 Global Encoding。
-
Global Encoding控制新建项目、新建文件的默认读取方式 -
Project Encoding决定当前项目下新建文件的保存编码,也参与已有文件的读取判断 - 两者必须都设为
UTF-8,否则新建的.js、.html文件仍可能继承 Windows 默认的 GBK
Properties 文件要单独处理
.properties 文件不走通用编码逻辑,IDE 会单独用 Default encoding for properties files 解析。设错或漏设,msg=你好 就会变成 msg=\u4f60\u597d,且 IDE 不提示。
- 在
Settings / Preferences → Editor → File Encodings中,把该项也设为UTF-8 - 务必勾选
Transparent native-to-ascii conversion——这是开关,关了就自动转义中文
已有乱码文件别硬改,先看状态栏再操作
打开一个显示方块或问号的文件,右下角状态栏会显示 WebStorm 当前“猜”的编码(比如 GBK 或 ISO-8859-1)。点击它弹出列表,直接敲 utf 或 gbk 快速定位。
- 选带 ⚠️ 的编码(如
GBK)时,会弹窗问你选Reload还是Convert -
Reload:仅重新按该编码解析内容,磁盘文件不变(适合安全预览) -
Convert:真把文件内容按新编码重写进磁盘(必须确认原始内容确实是那个编码,否则中文损坏) - 执行过
Convert后,WebStorm 会把这个文件和该编码绑定,下次打开不再瞎猜
终端和运行配置输出乱码?那是 JVM 和系统层的事
编辑器里全设对了,console.log('中文') 在 Terminal 里还是问号,说明问题不在 WebStorm 编码设置,而在底层环境。
- Windows 用户:注册表路径
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor新增字符串值Autorun,值为chcp 65001 - 所有平台:编辑
bin/webstorm64.vmoptions(macOS/Linux 是webstorm.vmoptions),追加一行:-Dfile.encoding=UTF-8 - Run Configuration → Environment Variables 中必须显式添加
file.encoding=UTF-8(IDEA 系列常漏这一层)
三处缺一不可。最容易被忽略的是:Convert 操作必须指定正确的源编码,且不能递归进 node_modules/;还有就是 Terminal 的 chcp 65001 和 VM 参数,少一个,输出就崩。


















