VSCode如何解决终端中文乱码_VSCode终端中文乱码解决技巧

夜萱大大_9429

夜萱大大_9429

2026-04-04

345人浏览

原创

VSCode终端中文乱码根源在于终端进程编码与程序输出不匹配,需从shell层配置:PowerShell需chcp 65001并写入$PROFILE;Git Bash/WSL需正确设置locale和环境变量;字体须在VSCode和系统终端两级配置;所有修改后必须关闭全部终端重开。

vscode如何解决终端中文乱码_vscode终端中文乱码解决技巧

VSCode终端中文乱码不是编辑器本身的问题,而是终端进程(PowerShell、cmd、Git Bash等)没按UTF-8输出,或字体不支持渲染——改VSCode设置没用,必须从shell层动手。

PowerShell终端里print("中文")显示□或问号

根本原因是PowerShell默认用GBK(CP936)代码页,但Python/Node等工具按UTF-8发字节流,两边对不上。不是字体问题,也不是files.encoding能管的。

  • 临时修复:在VSCode终端里直接运行chcp 65001,立刻生效,但每次新开终端都要重输
  • 一劳永逸:编辑PowerShell配置文件(运行notepad $PROFILE),在末尾加一行:chcp 65001 > $null
  • 别用[Console]::OutputEncoding = [System.Text.Encoding]::UTF8——它只影响.NET控制台API,对python或node子进程完全无效
  • 必须确保VSCode默认终端是PowerShell:设置里搜terminal.integrated.defaultProfile.windows,值设为powershell

终端字体正常但中文还是方块

VSCode终端字体设置和Windows系统终端属性是两套逻辑,只改VSCode里的terminal.integrated.fontFamily不够,系统级字体也得配。

  • 先在VSCode设置中搜terminal.integrated.fontFamily,填入支持中文的等宽字体链,例如:"Cascadia Code", "Microsoft YaHei", monospace
  • 然后在VSCode终端窗口右键 → 属性 → 字体,手动选Cascadia Code或Consolas(不能留空或选“点阵字体”)
  • 改完必须关闭所有已打开的终端,再按Ctrl + Shift + `新开一个——旧终端不会刷新字体
  • 如果用的是旧版Windows(1903以前),chcp 65001可能不生效,建议升级或换Git Bash

Git Bash或WSL终端中文显示异常

Git Bash默认走UTF-8,但VSCode集成终端有时会忽略其locale;WSL则完全依赖Linux侧配置,和Windows区域设置无关。

VSCode
VSCode

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

下载
  • Git Bash:先在终端里运行locale,如果输出是LANG=zh_CN.GBK,说明没走UTF-8;在settings.json里加:"terminal.integrated.env.windows": { "LANG": "zh_CN.UTF-8", "LC_ALL": "zh_CN.UTF-8" }
  • WSL:进WSL终端执行sudo dpkg-reconfigure locales,勾选zh_CN.UTF-8并设为默认;再确认/etc/wsl.conf里有[boot] systemd=true
  • 别在Git Bash里硬加chcp命令——它不识别该指令,会报错
  • 如果Git Bash安装时没勾选Use Windows' default console code page,那它天然支持UTF-8,此时乱码大概率是字体问题

Python脚本输出中文正常,但终端里跑就乱码

这是Python启动时读错了环境编码,sys.stdout.encoding被终端“骗”成了cp936,哪怕你刚输过chcp 65001,Python也可能缓存旧值。

  • 验证方法:终端里先输chcp 65001,再输python -c "import sys; print(sys.stdout.encoding)"——必须看到utf-8
  • 最稳解法:在VSCode设置里搜terminal.integrated.env.windows,加环境变量:"PYTHONIOENCODING": "utf8"
  • 不推荐在脚本里写sys.stdout.reconfigure(encoding='utf-8')——它只在Python 3.7+且终端真正支持时才生效,否则抛AttributeError
  • 如果用python -u,只是禁用缓冲,不解决编码推断错误

最容易被忽略的一点:所有shell层的修改($PROFILE、chcp、环境变量)都要求关闭全部终端后新开——VSCode不会热更新这些底层状态,开着旧终端试等于白忙。

相关文章

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

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

下载

相关标签:

vscode

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

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2335

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3842

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1276

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

4459

7

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

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

2023.09.27

3480

5

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

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

2026.02.03

269

24

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

569

3

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

2024.03.01

1698

6

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

2023.08.08

936

5

热门下载

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

精品课程

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