右下角点“gbk”或“iso-8859-1”后应选reopen with encoding→utf-8临时验证,或save with encoding→utf-8(非utf-8 with bom)永久转码;菜单灰掉需先ctrl+s保存;python报错多因误选带bom选项;files.encoding必须设为"utf8"且配合"files.autoguessencoding": false才生效。

右下角点“GBK”或“ISO-8859-1”后选什么?
直接点击 VSCode 窗口右下角显示的当前编码名(比如 GBK、ISO-8859-1 或 UTF-8 with BOM),弹出菜单后:
• 选 Reopen with Encoding → UTF-8:只重新解析当前内容,不改文件本身,适合快速验证是不是编码问题
• 选 Save with Encoding → UTF-8:把编辑器里当前的内容,以 UTF-8(无 BOM)格式写回磁盘,这才是真正改掉文件编码
• 如果菜单灰掉,说明文件没被修改过,先按 Ctrl+S 保存一次再操作
为什么点了“Save with Encoding → UTF-8”Python 还报错?
大概率你选的是 UTF-8 with BOM,而不是纯 UTF-8。
• UTF-8 with BOM 会在文件开头写入 \ufeff 字节,Python 解释器会把它当非法字符,报 SyntaxError: Non-UTF-8 code starting with '\xff'
• Git diff 里也会出现异常符号(如 ^@)
• VSCode 状态栏显示 “UTF-8” 时默认就是无 BOM;显示 “UTF-8 with BOM” 就是带 BOM —— 务必手动在弹窗里选不含 “with BOM” 字样的那一项
改完之后下次打开还是乱码?
VSCode 会记住每个文件上次用什么编码打开,并优先沿用,不管全局设置怎么改。
• files.encoding 设置只影响新建文件、未打开过的文件,对已有文件完全无效
• 想让这个文件以后永远用 UTF-8 打开,必须执行一次 Save with Encoding → UTF-8,VSCode 才会把这个选择记为该文件的“偏好编码”
• 如果反复失败,关掉文件 → 删除项目下的 .vscode/workspaceStorage 文件夹 → 重启 VSCode,清掉历史缓存
settings.json 里 "files.encoding": "utf8" 怎么写才生效?
值必须严格写成 "utf8"(全小写、无短横、无 BOM 后缀),其他写法都会被忽略:
• ✅ 正确:"files.encoding": "utf8"
• ❌ 无效:"UTF-8"、"UTF8"、"utf-8"、"utf8bom"
• 配合 "files.autoGuessEncoding": false 一起设,否则 VSCode 仍可能根据文件头“猜”回 GBK
• 工作区配置(.vscode/settings.json)比用户级设置更可靠,尤其当项目混有旧 GBK 文件时











