vscode控制台中文乱码主因是python进程输出编码(utf-8)与windows终端解码(cp936)不匹配;需在settings.json中配置"terminal.integrated.env.windows": {"pythonioencoding": "utf8"},关闭所有终端后重启,并为code runner和debug console单独设置该环境变量,同时指定支持中文的终端字体。

VSCode 控制台中文乱码不是“显示问题”,而是 Python 进程输出编码(sys.stdout.encoding)和 Windows 终端解码规则不匹配——Python 默认按 UTF-8 写,终端却用 CP936(GBK)读,字节一错位,就变成 □ 或 ?。
怎么确认是终端层乱码,不是文件编码错了
先跑两行命令验证:
-
chcp→ 如果输出活动代码页: 936,说明终端当前是 GBK -
python -c "import sys; print(sys.stdout.encoding)"→ 如果输出cp936(不是utf-8),就坐实了错配 - 编辑器里中文注释正常,但
print("你好")在终端里变方块 → 典型终端层问题 - 终端里直接
echo 你好正常,但 Python 脚本输出乱码 → 更确定是 Python 进程没对齐终端
settings.json 必加的环境变量:PYTHONIOENCODING=utf8
这是最稳、覆盖所有启动方式(终端直跑、Code Runner、Tasks)的方案。注意三点:
- 必须写成
"terminal.integrated.env.windows": { "PYTHONIOENCODING": "utf8" }—— 值是utf8(全小写、无横线),UTF-8或utf-8在 Windows 下无效 - 加完后必须关掉所有已打开的终端标签页(
Ctrl + Shift + `全关),再新建一个才生效 -
terminal.integrated.encoding已被弃用,设了也无效,别浪费时间
Code Runner 和 Debug Console 要单独处理
这两个地方不继承 terminal.integrated.env.windows 配置,得手动补:
- Code Runner:进插件设置 → 找
Code Runner: Executor Map→ 把 Python 项改成:set PYTHONIOENCODING=utf8 && python -u $fileName(Windows) - Debug Console(F5 调试时那个输出框):在项目根目录
.vscode/launch.json的对应配置里加"env": { "PYTHONIOENCODING": "utf8" },改完保存并重启调试会话 - 字体不能漏:在
settings.json加"terminal.integrated.fontFamily": "'Sarasa Mono SC', 'Microsoft YaHei'",没中文字体,UTF-8 字节再对也渲染不出来
真正容易被忽略的是:终端字体和 chcp 65001 必须同时存在。只改环境变量不换字体,或只换字体不设 utf8,都会卡在最后一环。











