VSCode如何彻底解决终端输出中文乱码的问题

酷强君_6849

酷强君_6849

2026-04-05

981人浏览

原创

vscode终端中文乱码的根本原因是字体不支持中文或系统locale未生效,而非编码设置错误;需同步解决字体配置、shell环境变量透传及subprocess编码三者对齐问题。

vscode如何彻底解决终端输出中文乱码的问题

VSCode 终端输出中文乱码,根本原因不是编码设置错了,而是终端底层使用的字体不支持中文,或者系统 locale 未生效——改 files.encoding 或 terminal.integrated.defaultProfile 都是治标不治本。

确认终端实际运行环境(Windows/macOS/Linux 差异极大)

VSCode 内置终端只是外壳,真正执行命令的是你系统里的 shell(如 PowerShell、cmd、zsh、bash)。乱码往往发生在 shell 启动时没加载正确的 locale,或 VSCode 没把环境变量透传过去。

  • Windows 用户:优先检查是否启用了 terminal.integrated.env.windows,并确保其中包含 chcp 65001(UTF-8 代码页),否则 cmd/powershell 默认用 GBK,print("你好") 必然乱码
  • macOS/Linux 用户:运行 locale 看输出,若 LANG 是 C 或空,说明 shell 启动时没读取 ~/.zshrc 或 ~/.bashrc 中的 export LANG=zh_CN.UTF-8;VSCode 默认不 source 这些文件,需在设置中开启 terminal.integrated.inheritEnv
  • Python 脚本里 print 中文乱码?不是 VSCode 问题,是 Python 3.7+ 在非 UTF-8 locale 下可能 fallback 到 mbcs(Windows)或 ANSI_X3.4-1968(Linux),此时要显式指定 sys.stdout.reconfigure(encoding="utf-8")(仅 Python 3.7+)

字体必须支持中文且被终端正确识别

即使编码全对,如果终端渲染用的字体不含中文字形(比如默认的 Consolas、Menlo、Monaco),照样显示方块或空格。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 打开 VSCode 设置(Ctrl+,),搜 terminal integrated font family,填入已安装的中英双语等宽字体,例如:"Fira Code", "Microsoft YaHei", "Sarasa Gothic SC", "JetBrains Mono"(注意用英文逗号分隔,引号不能少)
  • Windows 上不要只写 微软雅黑,得用英文名 Microsoft YaHei;macOS 推荐 "SFMono-Regular", "PingFang SC"
  • 改完重启终端(关闭再开新 tab),用 echo "测试中文" 验证;如果还是方块,说明该字体确实没嵌入 CJK 字形,换一个

Python subprocess 或 os.system 输出乱码的特殊处理

当 Python 脚本用 subprocess.run() 调外部命令(如 git status、node -v),或用 os.system() 打印中文时,乱码常因子进程没继承父进程的编码环境。

  • 避免用 os.system();改用 subprocess.run(..., encoding="utf-8", errors="replace")
  • Windows 下调用 cmd 命令前,先执行 subprocess.run("chcp 65001 >nul", shell=True) 切换代码页(仅当前 subprocess 生效)
  • 若用 subprocess.Popen,务必设 universal_newlines=True(等价于 text=True)和 encoding="utf-8",否则 stdout.read() 返回 bytes,decode 错就会乱码

真正卡住人的地方,往往不是某一个设置没调对,而是字体 + locale + subprocess 编码三者没对齐。尤其是 Windows 用户容易忽略 chcp 和字体英文名,macOS 用户容易误以为 Terminal.app 正常 = VSCode 终端就正常——其实两者环境隔离得很彻底。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2940

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

249

24

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

6439

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1860

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

1094

5

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4197

7

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

3961

6

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3259

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2818

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程