webstorm中文乱码需同步设置三层utf-8编码:global、project及properties文件编码,并启用transparent native-to-ascii conversion;终端乱码需配置系统shell、jvm参数及run configuration;ui字体问题则需手动指定中文字体并重启。

WebStorm 中文乱码不是“没设编码”,而是三层编码策略没对齐——IDE 层、项目层、文件层各自按不同规则猜,结果一碰中文就崩。
Editor → File Encodings 里三个 UTF-8 必须同时设对
只改 Project Encoding 是最常见错误。Global Encoding 控制新建项目和新文件的默认读取方式;Project Encoding 决定当前项目下新建文件的保存编码(也参与读取);Default encoding for properties files 则专管 .properties 文件——漏掉它,msg=你好 就会自动变成 msg=\u4f60\u597d 且 IDE 不提示。
必须全部设为 UTF-8,并勾选 Transparent native-to-ascii conversion(这是 .properties 文件中文不被转义的开关)。改完点 OK 后建议完全退出 WebStorm 再重启,部分设置热加载不可靠。
右下角状态栏点击后选 Reload 还是 Convert?
打开一个乱码文件(比如显示方块或问号),右下角会显示当前识别的编码(如 GBK 或 ISO-8859-1)。点击它弹出列表,直接敲 utf 或 gbk 快速定位:
-
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 系列常漏这一层
Project 工具窗口(左边栏)显示口口口?那是 UI 字体问题
Project 栏显示乱码和文件内容编码无关,它只显示文件名和结构。如果整个侧边栏中文都变成方块,大概率是 UI 字体不支持中文:
- 进
File → Settings → Appearance & Behavior → Appearance(macOS 是WebStorm → Preferences → Appearance) - 勾选
Override default fonts by (not recommended) - 在
Name下拉框选一个带中文支持的字体,比如Microsoft YaHei(Windows)、WenQuanYi Micro Hei Mono(Linux)、PingFang SC(macOS) - 点
OK后必须重启 WebStorm——热重载不刷新 UI 字体栈
真正容易被忽略的是:Project 栏里某几个文件名异常,而其他正常——这说明这些文件在磁盘上就是用非 UTF-8 编码保存的(比如从旧 Windows 项目拷贝来的 GBK 文件),得回到状态栏用 Reload/Convert 处理,而不是调 UI 字体。











