应选reload预览或convert永久改:reload仅调整编辑器显示而不修改磁盘文件,适合安全验证解码效果;convert则按新编码重写文件内容,需确认原始编码准确,否则导致中文损坏。

WebStorm 乱码不是编码“没设”,而是它猜错了——你得告诉它该用什么编码读这个文件,而不是等它自动识别。
File Encoding 状态栏点击后选 Reload 还是 Convert?
打开一个乱码的 JS 或 HTML 文件,右下角状态栏会显示当前识别的编码(比如 GBK、ISO-8859-1),点击它弹出编码列表:
- 选带⚠️标记的编码(如
GBK)时,WebStorm 会弹窗问你选Reload还是Convert -
Reload:只改编辑器里怎么显示,不碰磁盘文件内容——适合预览确认是否真能正确解码 -
Convert:把文件内容按新编码重写进磁盘——选它前必须确认原始内容确实是那个编码,否则中文会变问号或方块 - 一旦选了
Convert,WebStorm 就会把这个文件和该编码绑定,下次打开不再猜
Global Encoding 和 Project Encoding 都设成 UTF-8 就够了吗?
设成 UTF-8 是必要但不充分条件。关键还得看三层 fallback 是否被意外打断:
-
Global Encoding和Project Encoding必须都设为UTF-8 -
Default encoding for properties files也必须是UTF-8,否则.properties里的中文会被自动转成\u4f60\u597d而不提示 - 必须勾选
Transparent native-to-ascii conversion,这是处理 Java 属性文件的开关 - 改完点
OK后建议重启 WebStorm——部分设置热加载不可靠
为什么编辑器里正常,Terminal 或 Run Configuration 输出还是乱码?
因为终端输出走的是 JVM 或系统命令行自己的编码逻辑,和编辑器设置完全无关:
- 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 系列常漏这一层 - 三处缺一不可;只改 IDE 设置,
console.log("你好")在 Terminal 里照样显示成
JS 文件本身带 BOM 或 <meta charset="gbk"> 鎬庝箞鍔烇紵
WebStorm 浼氫紭鍏堟寜杩欎簺鏄惧紡澹版槑鏉ュ喅瀹氱紪鐮侊紝瑕嗙洊鎵











