webstorm terminal 中文乱码需系统shell、jvm参数、终端渲染三者协同配置:windows需注册表autorun设chcp 65001、webstorm64.vmoptions加-dfile.encoding=utf-8、run配置中同步设置vm选项和环境变量;macos/linux需在webstorm.sh首行加lang/lc_all导出、vmoptions加编码参数、运行配置同设;重启后通过java -xshowsettings:properties和system.getproperty("file.encoding")双重验证为utf-8,且ls可显示中文文件名,再检查terminal字体是否支持中文fallback。

WebStorm Terminal 输出中文乱码,不是改 File Encodings 就能解决
编辑器里把 Global Encoding 和 Project Encoding 全设成 UTF-8,对 Terminal 输出完全无效。Terminal 的编码由系统 Shell、JVM 启动参数、WebStorm 自身终端渲染三者共同决定,和文件读写逻辑是两套独立机制。
Windows 下必须配注册表 + VM 参数 + 运行配置
缺一不可,少一个 console.log("中文") 就可能显示为 ???:
- 打开
regedit,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor - 新建字符串值,名称为
Autorun,值为chcp 65001(注意中间有空格) - 编辑
bin/webstorm64.vmoptions,末尾追加一行:-Dfile.encoding=UTF-8 - 打开
Run > Edit Configurations,在目标配置的VM options中填入:-Dfile.encoding=UTF-8 - 在同一配置的
Environment variables区域,显式添加:file.encoding=UTF-8
macOS/Linux 要改启动脚本 + VM 参数 + 运行配置
WebStorm 内置 Terminal 不继承终端环境变量,必须硬编码注入:
- 编辑
bin/webstorm.sh,在#!/bin/sh下**第一行紧贴插入**:export LANG=zh_CN.UTF-8和export LC_ALL=zh_CN.UTF-8 - 编辑
bin/webstorm.vmoptions,追加:-Dfile.encoding=UTF-8 -
Run Configuration中同样设置VM options和Environment variables为file.encoding=UTF-8 - 改完必须彻底退出 WebStorm(包括托盘进程),再重启,否则变量不加载
验证是否真正生效,别信设置界面
只看 Settings 页面有没有勾选,等于没验。运行时真实值才作数:
- 在 WebStorm Terminal 中执行:
java -XshowSettings:properties -version 2>&1 | grep file.encoding - 在 Java 或 Kotlin 代码中打印:
System.getProperty("file.encoding") - 两个输出都必须是
UTF-8,且ls能正常显示中文文件名,才算闭环 - 如果 Terminal 字体显示为方块 □,不是编码问题,而是字体未 fallback 到中文字体——去
Settings → Tools → Terminal → Font改,且务必勾选Override IDE font











