VSCode 中 editor.tokenColorCustomizations 自定义颜色不会导致中文乱码;乱码根源在于文件编码(如未强制 UTF-8 保存)、终端代码页(如 PowerShell 未设 chcp 65001)、字体不支持中文或 files.autoGuessEncoding 启用引发解码错误。

VSCode 里自定义颜色(比如 editor.tokenColorCustomizations)本身不会导致乱码;出现乱码,说明你改的不是颜色配置,而是文件编码或终端环境出了问题——颜色设置只影响渲染,不改变字符解码逻辑。
右下角显示 UTF-8,但粘贴中文后保存变问号
这是写入时编码错配,不是颜色问题。VSCode 新建文件标称 UTF-8,但 Windows 系统区域设为中文时,部分底层 API 仍走 GBK 路径写入,尤其从微信、网页复制的中文。
- 新建文件后,先点右下角编码 →
Save with Encoding→UTF-8,再粘贴、再保存 - 全局预防:在
settings.json中设"files.autoGuessEncoding": false和"files.encoding": "utf8" - 注意:
files.associations可单独为.bat或.reg文件指定gbk,避免老脚本执行失败
终端里 print("中文") 输出是方块或问号
和编辑器颜色配置完全无关,是 PowerShell/CMD 的代码页与 Python 输出编码不一致。VSCode 终端只是转发,不参与解码。
- 临时修复:在集成终端中运行
chcp 65001(Windows 10 1903+)或[Console]::OutputEncoding = [Text.Encoding]::UTF8 - 永久生效:在
settings.json加"terminal.integrated.env.windows": {"PYTHONIOENCODING": "utf8"} - 字体必须支持中文:在设置中搜
terminal.integrated.fontFamily,设为"Fira Code, Microsoft YaHei"这类组合
改了 editor.tokenColorCustomizations 后中文注释变乱码
不可能。token 颜色配置只改 foreground/background,不碰字符编码。如果你看到乱码,说明你误改了别的地方:
- 检查是否把
editor.fontFamily设成了不支持中文的等宽字体(如仅Fira Code,没 fallback) - 确认没在
settings.json里错误覆盖editor.codeLensFontFamily或editor.suggestFontSize等非常规字段 - 最常见误操作:把颜色规则写在
editor.tokenColorCustomizations外层,导致 JSON 解析失败,VSCode 回退到默认编码策略,触发 autoGuessEncoding 错判
真正容易被忽略的是:files.autoGuessEncoding 关不掉,所有颜色、字体、终端设置都白调——它会在你打开一个 .txt 文件时,强行用 ISO-8859-1 解码,然后把“你好”变成一堆 ,这时候再好看的语法高亮也救不回来。


















