Terminal中文乱码需同步配置三处JVM编码:vmoptions文件加-Dfile.encoding=UTF-8、运行配置VM选项填相同参数、环境变量显式设file.encoding=UTF-8;Windows还需注册表Autorun设chcp 65001,改后必须彻底重启WebStorm并验证两处输出均为UTF-8。

Terminal 输出中文是问号或方块?先确认三处 JVM 编码是否一致
WebStorm Terminal 里 console.log("中文") 或 System.out.println("中文") 显示乱码,根本不是字体问题,而是字节流在 JVM → 终端之间被错误解码。必须同时满足以下三点,缺一不可:
-
bin/webstorm64.vmoptions(Windows/macOS)或bin/webstorm.vmoptions(Linux)末尾追加:-Dfile.encoding=UTF-8(注意大小写,不能写utf8) - Run > Edit Configurations → 选中你的运行配置 → VM options 输入框填:
-Dfile.encoding=UTF-8 - 同一运行配置的 Environment variables 区域,显式添加键值对:
file.encoding=UTF-8
改完必须彻底退出 WebStorm(包括托盘进程),再重启。否则 JVM 参数不加载。验证方式:在 Terminal 执行 java -XshowSettings:properties -version 2>&1 | grep file.encoding,输出必须是 file.encoding = UTF-8。
Terminal 里中文显示为“□□□”?那是字体没 fallback 到中文字体
方块 ≠ 编码错,是渲染层找不到对应字形。Editor 字体设置对 Terminal 无效,必须单独配:
- Settings → Tools → Terminal → Font
- 勾选 Override IDE font(不勾这个,改了也没用)
- Font name 推荐选:
JetBrains Mono、Fira Code或Cascadia Code - macOS 可额外加
STHeiti回退;Windows 推荐Microsoft YaHei Mono
别碰 Settings → Editor → Font 或 Appearance → Font —— 那些只影响代码编辑区和菜单,不影响 Terminal 渲染。
Windows Terminal 启动就乱码?CMD 底层编码必须强制切到 UTF-8
GUI 启动的 WebStorm 不继承命令行环境变量,Terminal 底层调的是 cmd.exe,默认用 GBK(代码页 936)。JVM 参数压不住它:
- Win + R →
regedit→ 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor - 右键 → 新建 → 字符串值 → 名称填
Autorun(注意大小写) - 双击该值,数据栏填:
chcp 65001 > nul(中间有空格,>是重定向,避免启动时刷一行提示)
改完必须完全退出 WebStorm 再开,否则注册表变更不生效。验证:在 Terminal 里执行 chcp,输出应为 Active code page: 65001。
macOS/Linux 终端中文仍乱?LANG/LC_ALL 没透传给 WebStorm 进程
即使你在终端里 echo $LANG 看到 zh_CN.UTF-8,WebStorm GUI 启动时也读不到这些变量:
- 编辑
bin/webstorm.sh(macOS/Linux 安装目录下的脚本) - 在
#!/bin/sh下**紧贴第一行**插入两行:
export LANG=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8
注意:不是改 ~/.zshrc 或 ~/.bashrc —— 那些只影响你手动开的终端,不影响 WebStorm 自己拉起的子进程。改完同样要彻底重启 WebStorm。
最容易漏的是 Environment variables 里没填 file.encoding=UTF-8,或者 Windows 注册表 Autorun 值名拼错成 AutoRun 或 autorun。这两处一错,其他全设对也白搭。


















