VSCode终端中文乱码主因是终端进程(PowerShell/Git Bash)默认用GBK解码,而Python等工具链输出UTF-8字节流导致错位;须配置chcp 65001、PYTHONIOENCODING=utf8、LANG=zh_CN.UTF-8及中文字体链,并重启终端生效。

VSCode终端中文乱码不是文件编码错了,而是终端进程(PowerShell/cmd/Git Bash)默认用GBK解码,而Python/Node.js等工具链按UTF-8输出字节流——两边没对齐,字就变成□、?或八进制转义串(如\344\273\243)。
PowerShell终端启动就乱码,chcp显示936怎么办
Windows PowerShell默认代码页是936(GBK),但python、node等进程默认输出UTF-8字节,终端用GBK去解UTF-8,必然错位。别指望改files.encoding或右下角编码按钮,那只是编辑器行为,跟终端无关。
- 临时验证:在VSCode终端里运行
chcp 65001,再跑python -c "print('你好')",如果立刻正常,说明就是这个原因 - 永久修复:在
settings.json里加这段,让每次启动PowerShell都自动切UTF-8:
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": ["-NoExit", "-Command", "chcp 65001 > $null"]
}
}
- 重启VSCode(不是只关终端标签页),新开终端后运行
chcp确认输出是65001 - 别用
[Console]::OutputEncoding = ...——它只影响.NET API,对python子进程无效
Python print()还是乱码,但echo 你好正常
说明终端本身能渲染中文,问题出在Python解释器启动时没识别到UTF-8环境。它查GetConsoleOutputCP()返回936,就自作主张把sys.stdout.encoding设成cp936,和终端真实行为冲突。
仅使用 Python 将 Claw Code 虚拟化框架与 OpenClaw 集成,提供 184 种工具和 200 多条命令,用于安全分析和代码质量...
- 验证方式:
python -c "import sys; print(sys.stdout.encoding)",如果输出cp936就是它 - 最稳方案:在
settings.json中配置环境变量,强制Python走UTF-8:
"terminal.integrated.env.windows": {
"PYTHONIOENCODING": "utf8"
}
- 注意大小写:
utf8必须全小写,UTF-8或UTF8在Windows下不生效 - 别在脚本里硬写
sys.stdout.reconfigure(encoding='utf-8'):3.7+才支持,且终端不真正支持时会抛AttributeError - 如果你用Code Runner插件,还得改它的执行命令,比如在
code-runner.executorMap里把python对应值改成"chcp 65001 && python"
Git Bash终端中文路径显示?或报错
Git Bash本身支持UTF-8,但它依赖LANG和LC_ALL环境变量判断是否启用Unicode模式。这两个变量为空或设成C,它就退回到ASCII模式,拒绝处理中文路径。
- 检查方式:在Git Bash终端里运行
locale,如果LANG是空或C,就是根源 - 修复方法:在
settings.json里加环境变量:
"terminal.integrated.env.windows": {
"LANG": "zh_CN.UTF-8",
"LC_ALL": "zh_CN.UTF-8"
}
- 确保Git安装时勾选了
Use Windows' default console window,否则底层msys2可能不加载locale - 别在
~/.bashrc里写export LANG=C——这是高频踩坑点 - 改完后必须关闭当前终端,再用
Ctrl + Shift + `新开一个,旧终端不会刷新环境变量
终端字体显示方块,不是编码问题
即使chcp 65001和PYTHONIOENCODING=utf8都设对了,终端里还是一堆小方块?那八成是字体链没兜住中文。
- 在VSCode设置里搜
terminal.integrated.fontFamily,填入带中文字体的等宽链,例如:"Cascadia Code", "Microsoft YaHei", monospace - Windows用户必须额外进终端右键 → 属性 → 字体,手动选
Consolas或Cascadia Code(仅靠VSCode设置不够) - 别用
SimSun(宋体)当主力终端字体——它不是等宽字体,会导致光标偏移、对齐错乱 - 改完后必须关掉当前终端,再新开一个;旧终端不会刷新字体
最容易被忽略的是:终端编码修复必须分层验证。先确认echo 你好是否正常,再看python -c "print('你好')",最后检查git status路径。每一层背后是不同机制(系统API / Python初始化逻辑 / Git locale策略),混着调只会掩盖真实问题。

















