WebStorm中文乱码需同步设置Global、Project及Properties三层UTF-8编码并勾选Transparent native-to-ascii conversion,且必须完全重启IDE;Terminal乱码还需同步配置JVM参数-Dfile.encoding=UTF-8、Run Configuration及环境变量。

Global Encoding 和 Project Encoding 必须同时设为 UTF-8
只改 Project Encoding 是最常见错误。WebStorm 用三层编码 fallback:新建项目/文件时看 Global Encoding,当前项目内新建文件保存时用 Project Encoding,两者不一致就会导致新 JS/HTML 文件一创建就是 GBK。必须在 Settings → Editor → File Encodings 中把这两项都手动选成 UTF-8——不能依赖“自动检测”或留空。
Default encoding for properties files 要设 UTF-8 并勾选 Transparent native-to-ascii conversion
.properties 文件(比如 Spring Boot 的 application.properties)有独立编码路径。如果这里没设对,msg=你好 会被 IDE 自动转成 msg=\u4f60\u597d,且不提示、不警告。必须满足两个条件:
-
Default encoding for properties files设为UTF-8 - 勾选
Transparent native-to-ascii conversion
漏掉任一,中文就进转义,且后续搜索、替换、Git diff 都会失效。
改完设置必须完全退出 WebStorm 再重启
部分编码设置(尤其是 Global Encoding)不支持热加载。点完 OK 后只是写入配置,若后台进程还在运行,旧的 JVM 实例仍按老规则解析文件。Mac/Linux 下要关掉 Dock 图标和菜单栏托盘;Windows 下任务管理器里确认没有残留的 webstorm64.exe 进程。否则右下角状态栏可能仍显示 GBK,新建文件也还是乱码。
Terminal 和 Run Configuration 输出乱码不是编码设置没生效,而是 JVM 层没同步
编辑器里全设成 UTF-8,不代表 console.log("你好") 或 System.out.println("你好") 在 Terminal 里能正常显示。JVM 启动时默认用系统 locale,和 IDE 设置无关。必须做三件事:
- 编辑
webstorm64.vmoptions(macOS/Windows)或webstorm.vmoptions(Linux),追加一行:-Dfile.encoding=UTF-8 - 在
Run > Edit Configurations中,每个运行配置的VM options里也填-Dfile.encoding=UTF-8 - 同个配置的
Environment variables区域,显式添加file.encoding=UTF-8
少一层,控制台输出就可能变成问号或方块——而且这个现象和文件内容是否乱码完全无关,纯属 JVM 输出管道未对齐。


















