webstorm terminal中文乱码需同步配置四点:windows改注册表autorun设chcp 65001,macos/linux改webstorm.sh导出lang/lc_all,jvm层在vmoptions和run configuration中均加-dfile.encoding=utf-8并显式设环境变量file.encoding=utf-8,powershell用户还需修改$profile设utf8输出编码,且任意修改后必须彻底退出webstorm(含托盘进程)再重启。

WebStorm Terminal 中文乱码不是编辑器编码设错导致的,而是系统 Shell、JVM 启动参数、IDE 终端渲染三层编码没对齐——只改 File Encodings 设置完全无效。
Windows 下 Terminal 乱码:必须改注册表 Autorun
GUI 启动的 WebStorm 不继承命令行环境变量,Terminal 底层调用的是 cmd.exe,它默认用 GBK(代码页 936)。光靠 JVM 参数压不住这个底层行为:
- 运行
regedit,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor - 新建一个「字符串值」,名称严格为
Autorun(大小写敏感) - 值设为
chcp 65001(注意中间是空格,不是等号) - 改完必须彻底退出 WebStorm(包括托盘进程),再重启,否则不生效
macOS/Linux 下 Terminal 乱码:改 webstorm.sh 导出环境变量
WebStorm 内置 Terminal 不读取你终端里 echo $LANG 的结果,得在 IDE 启动前就注入 UTF-8 环境:
- 编辑
bin/webstorm.sh,在#!/bin/sh下方**紧贴第一行**插入: export LANG=zh_CN.UTF-8export LC_ALL=zh_CN.UTF-8- 保存后必须彻底退出 WebStorm 并重启,否则变量不加载
Terminal 中 Java/Node.js 输出仍乱码:三处 JVM 编码必须同步
即使 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(IDEA 系列常漏这一项) - 验证方式:在 Terminal 执行
java -XshowSettings:properties -version 2>&1 | grep file.encoding,输出必须是UTF-8
PowerShell 用户额外要改 $PROFILE
WebStorm Terminal 若使用 PowerShell(v1 或 v7),仅靠注册表和 JVM 参数还不够——PowerShell 默认用 GBK 输出:
- 在 PowerShell 中执行
notepad $PROFILE(若文件不存在,先运行New-Item -Path $PROFILE -Type File -Force) - 在文件末尾添加两行:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'- 保存后只需重启 Terminal(不用重启 WebStorm),再测试
Write-Output "中文"
最容易被忽略的是:注册表/Autorun、vmoptions、运行配置里的 VM options 和 Environment variables 这四点缺一不可;任意一处修改后,都必须彻底退出 WebStorm(含托盘进程)再重开,热加载不生效。











