WebStorm 代码乱码需同步设置 IDE、项目、文件三层 UTF-8 编码,并配置 Terminal、JVM 及 UI 字体。三处 File Encodings 必须全设为 UTF-8,.properties 文件还需启用 Transparent native-to-ascii conversion;Terminal 乱码需修改系统 Shell、JVM 参数及环境变量;Project 栏乱码则应更换支持中文的 UI 字体并重启。

WebStorm 代码乱码不是编码没设,而是 IDE 层、项目层、文件层三者编码策略没对齐——改错一层,其他两层继续瞎猜,中文照样崩。
Editor → File Encodings 里三个 UTF-8 必须同时设对
只改 Project Encoding 是最常见错误。这三项必须全部手动设为 UTF-8:
-
Global Encoding:控制新建项目、新文件的默认读取方式 -
Project Encoding:决定当前项目下新建文件的保存编码(也参与已有文件读取) -
Default encoding for properties files:专管.properties文件,漏掉它,msg=你好就会自动变成msg=\u4f60\u597d,且 IDE 不提示
必须勾选 Transparent native-to-ascii conversion——这是 .properties 文件中文不被转义的开关。改完点 OK 后,建议完全退出 WebStorm 再重启,部分设置热加载不可靠。
已存在乱码文件别硬改,先看右下角状态栏再操作
打开一个显示方块或问号的文件,右下角会显示当前识别的编码(如 GBK 或 ISO-8859-1)。点击它弹出列表,直接敲 utf 或 gbk 快速定位:
- 选带 ⚠️ 的编码(如
GBK)时,弹窗问你选Reload还是Convert -
Reload:只让编辑器按新编码重新解析内容,磁盘文件一字不动——适合安全预览,确认是否真能正确解码 -
Convert:把文件内容按新编码重写进磁盘——必须确认原始内容确实是那个编码,否则中文变问号或方块
一旦执行过 Convert,WebStorm 就会把这个文件和该编码绑定,下次打开不再瞎猜。
Terminal / Run Configuration 输出还是乱码?JVM 和系统层要同步动
编辑器里全设成 UTF-8,不代表终端输出就正常。Terminal 输出走的是系统 Shell + JVM 启动参数 + WebStorm 终端渲染三层逻辑,缺一不可:
- 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 - 所有平台:编辑
webstorm64.vmoptions(Windows/macOS)或webstorm.vmoptions(Linux),追加一行:-Dfile.encoding=UTF-8 -
Run Configuration → Environment Variables里也必须显式设置file.encoding=UTF-8——IDEA 系列常漏这一层
改完必须彻底退出 WebStorm(包括托盘进程),再重启,否则变量不加载。
Project 工具窗口(左边栏)显示口口口?那是 UI 字体问题
Project 栏显示乱码和文件内容编码无关,它只显示文件名和结构。大概率是 UI 字体不支持中文:
- 进
File → Settings → Appearance & Behavior → Appearance(macOS 是WebStorm → Preferences → Appearance) - 勾选
Override default fonts by,在Name下拉框里选一个带中文支持的字体,比如Microsoft YaHei(Windows)、WenQuanYi Micro Hei Mono(Linux)、PingFang SC(macOS) - 点 OK 后必须重启 WebStorm 才生效——热重载不刷新 UI 字体栈
如果 Project 栏里连新建的 test.js 都显示为 .js,那 99% 是字体问题,别去动 Settings → Editor → File Encodings ——那里管的是文件内容编码,不是 UI 显示。


















