快速确认文件真实编码的方法是点击右下角编码标识→选reopen with encoding依次试gbk、gb2312、utf-8 with bom、utf-8,中文立即正常即找对;该操作不改文件、安全可逆;save with encoding必须选utf-8(非utf-8 with bom),否则python报错、git diff异常。

怎么快速确认文件真实编码
乱码不是文件损坏,是 VSCode 用错了规则去读它。右下角状态栏显示的 UTF-8 或 GBK 只是编辑器“猜的”,未必对。点击那个编码标识,选 Reopen with Encoding,依次试:GBK(Windows 记事本默认)、GB2312(部分老导出文本)、UTF-8 with BOM(Excel/Notepad++ 导出 CSV 常见)、UTF-8(新项目标准)。只要中文立刻变正常,就说明找对了。这个操作不改文件内容,安全可逆。
保存时该选 UTF-8 还是 UTF-8 with BOM
选 UTF-8,绝对不要选 UTF-8 with BOM。Python 解释器会把开头的 \ufeff 当成首字符,导致 SyntaxError: Non-UTF-8 code starting with '\xff';Git diff 里也会冒出异常符号;某些 shell 脚本执行失败。确认显示正常后,再次点右下角编码名 → Save with Encoding → UTF-8,才算真正转码覆写。
老项目混着 .bat/.reg/.ini 怎么办
全局设 "files.encoding": "utf8" 会害死它们——双击运行 .bat 报错、注册表导入失败。正确做法是按后缀单独配:
- 在工作区根目录建
.vscode/settings.json - 加这一段:
{ "files.associations": { "*.bat": "gbk", "*.reg": "gbk", "*.ini": "gbk" } } - 别碰
files.autoGuessEncoding:它在短文本、纯数字+中文组合里误判率极高,常错判成iso88591,关掉更稳
终端 print("中文") 还是方块?和编辑器设置无关
这是 PowerShell/CMD 自身代码页和 Python 输出编码没对齐。VSCode 编辑器设成 UTF-8 完全没用。必须动终端层:
- 临时:终端里输
chcp 65001(切到 UTF-8)再跑脚本 - 永久:在
settings.json加"terminal.integrated.env.windows": { "PYTHONIOENCODING": "utf8" } - PowerShell 用户额外补一行:
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8到$PROFILE
字体链没配对也会显示方块,terminal.integrated.fontFamily 必须显式包含中文字体名,比如 "Cascadia Code", "Microsoft YaHei",单设 Consolas 不行。











