VSCode文件乱码应先点击右下角编码名→选“Reopen with Encoding→UTF-8”临时查看,或“Save with Encoding→UTF-8”永久转码;全局设“files.encoding”: "utf8"可使新建文件默认UTF-8。

VSCode 里文件突然乱码,怎么快速切回 UTF-8
多数乱码不是文件坏了,而是 VSCode 当前用的编码和文件实际编码不匹配。最常见的是打开一个原本是 UTF-8 的文件,VSCode 却按 GBK 或 ISO-8859-1 解读,结果满屏问号或方块。这时候别急着重装插件或改设置,先看右下角状态栏——那里就藏着当前编码和切换入口。
- 点击右下角显示的编码名(比如
GBK、UTF-8 with BOM、Auto),会弹出菜单 - 选
Reopen with Encoding→UTF-8:只对当前文件生效,不改文件本身,适合临时查看 - 选
Save with Encoding→UTF-8:把当前内容按 UTF-8 重新写入磁盘,会真实改变文件编码 - 如果点完没反应或选项灰掉,说明文件未修改过,先按
Ctrl+S保存一下再试
想让新文件默认用 UTF-8,而不是每次手动切
VSCode 默认确实会尝试自动检测编码,但检测不准时就容易翻车。真正管用的是设全局默认值,而不是依赖“自动”。
- 打开设置(
Ctrl+,),搜files.encoding - 把
Files: Encoding改成utf8(注意是小写,不是UTF-8) - 这个设置只影响「新建文件」和「未指定编码的文件」,已有文件仍按自己 BOM 或上次保存的编码读取
- 如果项目里必须统一用
UTF-8 without BOM(比如前端工程),光设utf8不够,还得加工作区配置:.vscode/settings.json里写"files.encoding": "utf8"和"files.autoGuessEncoding": false,关掉自动猜
为什么改了设置还是打开老文件乱码
因为 VSCode 记住了每个文件上次用的编码,并优先信任它,哪怕你改了全局设置。这不是 bug,是设计行为。
- 历史记录存在
%APPDATA%\Code\User\workspaceStorage\...(Windows)或~/Library/Application Support/Code/User/workspaceStorage/...(macOS)里,没法手动清 - 最快清理法:关 VSCode → 删除当前工作区的
.vscode/workspaceStorage文件夹 → 重启 - 更稳妥的做法:在文件乱码时,右键编辑器标签 →
Reopen with Encoding→UTF-8,然后立刻Ctrl+S保存——这样 VSCode 就会把这次选择记为该文件的“偏好编码” - 如果文件带 BOM,VSCode 通常能识别;但若它是
UTF-8 without BOM又混了中文,且之前被当GBK打开过,就可能死锁——此时只能靠Save with Encoding强制转存
命令行打开文件时编码不一致,怎么办
用 code somefile.js 从终端启动 VSCode,有时编码判断会和 GUI 启动不同,尤其路径含中文或文件名有特殊字符时。
- 确保终端本身编码是 UTF-8(Linux/macOS 一般默认,Windows 建议用
chcp 65001切到 UTF-8) - VSCode 启动参数不支持传编码,所以得靠预设:在
settings.json加"files.encoding": "utf8"和"files.autoGuessEncoding": false - 如果某类文件(如
.log)总是被错判,可以按语言设编码:在设置里搜files.encoding→ 点右边加号 → 选Log语言 → 设utf8 - 注意:命令行传入的文件如果路径被 shell 错解(比如 Windows CMD 用 GBK 解中文路径),VSCode 根本收不到正确路径,这时乱码跟编辑器无关,得换终端或改系统区域设置
真正麻烦的不是切编码,而是同一个项目里混了多种编码又没文档说明。一旦发现某个文件 Save with Encoding 后其他工具(比如 git diff、Python 脚本)开始报错,就得停下来确认:这个文件到底该是什么编码?BOM 要不要?团队有没有约定?这些比点几下菜单重要得多。


















