VSCode打开.txt文件中文乱码主因是UTF-8解码GBK/GB18030文件,应先右下角点击编码→选“Reopen with Encoding”→试GB18030或GBK验证,成功后可保存为UTF-8;禁用autoGuessEncoding并按后缀关联设编码更安全,终端乱码需调代码页与字体。

VSCode打开.txt文件中文乱码,90%是因为它用UTF-8去解码了一个实际是GBK(或GB18030)编码的文件——不是文件坏了,只是“翻译词典”拿错了。
右下角点“Reopen with Encoding”是最快验证方式
这是最安全、最直接的排查动作,不改文件、不丢数据,只换解码方式:
- 看到乱码别急着保存,先看窗口右下角,那里显示着当前编码(比如
UTF-8) - 点击它 → 选
Reopen with Encoding→ 在列表里找GBK或GB18030(优先试GB18030,兼容性比GB2312好得多) - 如果文字立刻变正常,说明原始文件就是这个编码;如果还是乱,关掉文件重开再试下一个
- 注意:千万别点
Save with Encoding,那是真写回磁盘,一按就可能把原始中文永久覆盖成乱码字节
为什么files.autoGuessEncoding开了也不灵
VSCode默认关闭自动猜编码,因为准确率低且拖慢大文件打开速度。即使你手动开启了files.autoGuessEncoding,对纯中文短文本(比如一个只有几行中文的配置说明.txt)也大概率失效:
- GBK和UTF-8在某些字节组合上特征接近,VSCode容易误判为
windows1252或ISO-8859-1,结果越猜越乱 - 该设置只对新打开的文件生效,已打开的乱码文件不会自动刷新
- 真正起效的组合是:
"files.autoGuessEncoding": false+"files.encoding": "utf8",靠明确 fallback 避免玄学猜测
想让所有.txt默认用GBK打开?用语言关联配置
全局设"files.encoding": "gbk"是危险操作——会导致新建的.py、.js也用GBK保存,后续Git提交、协作、语法高亮全崩。更稳妥的是按文件类型指定:
- 打开设置(
Ctrl+,),搜files.encoding - 点
Edit in settings.json→ 找到files.associations或手动加一段:
{
"files.associations": {
"*.txt": "gbk"
}
}
这样只有.txt文件会默认用GBK打开,其他类型不受影响。如果项目里混着UTF-8的.txt,就老老实实右下角手动切一次,VSCode会记住该文件的编码偏好。
终端输出中文乱码?那跟.txt文件编码完全无关
你在VSCode集成终端里跑python script.py,输出中文是方块或问号,问题不在文件本身,而在Windows命令行的代码页:
- 在终端里执行
chcp 65001(切换到UTF-8代码页),再运行脚本 - 或者在
settings.json里加:"terminal.integrated.defaultProfile.windows": "PowerShell",并确保PowerShell字体支持中文(比如"terminal.integrated.fontFamily": "Consolas, Microsoft YaHei") - Python脚本里如果用了
print("中文"),还要确认环境变量PYTHONIOENCODING=utf-8已设置,否则Python自身输出层就乱了
最易被忽略的一点:乱码分“显示错”和“存坏”。前者能救,后者基本不可逆。只要看到乱码第一反应是保存,原始GBK字节就被UTF-8覆盖掉了——所以右下角那个小编码标签,既是开关,也是保险栓。


















