1.VSCode内置终端乱码问题
如下图所示:
2.乱码根因
Python环境部署在Windows(Python环境关联着许多Python库),Windows操作系统的默认编码方式是GBK,而VSCode内置终端的编码格式仅支持UTF-8,具体如下图所示。
简而言之:VSCode内置终端打印输出只支持显示UTF-8数据。
拓扑图如下所示,需要解决的是将Windows-Python环境的编码方式调整为UTF-8。
3.准备工作
准备工作是 设置VSCode文件的编码方式为UTF-8、 确认Windows的默认编码方式。
3.1 设置VSCode文件的编码方式为UTF-8
①设置——>搜索框输入files.encoding
,下拉框选择文件编码为UTF-8。
②设置——>搜索框输入files.Auto guess Encoding
,取消勾选自动猜测文件编码格式。
3.2 确认Windows的默认编码方式
③在cmd终端输入 chcp 即可查看活动页代码,显示936代表GBK;显示65001代表UTF-8。由此确认了Windows的编码方式为GBK。活动页代码的参考链接:https://developer.aliyun.com/article/607686
4.解决方案
统一Windows-Python环境编码方式
与VSCode的文件编码方式
皆为GBK或者UTF-8,推荐统一为UTF-8编码格式(“万国码的一种编码方式,还有两种分别是UTF-16和UTF-32”)。VSCode的文件编码方式
在上述的 【3.准备工作】 里的 ① files.encoding 中已经调整为UTF-8,因此下面我们只需要设置Windows-Python环境的编码方式
为UTF-8(注意:这里只是将Windows中的Python编码环境单独设置为UTF-8,但是Windows整体的系统环境编码仍是GBK),操作步骤如下:
1)鼠标右键打开 【我的电脑】—>【属性】—>【高级系统设置】—>【环境变量】;
2)新建一个变量名称:变量名为PYTHONIOENCODING
,值为UTF8;
⭐⭐⭐
环境变量是在操作系统中一个具有特定名字的对象,它代表了一个或者多个应用程序的信息。
当系统运行一个程序但没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到环境变量path中指定的路径去索引可运行的对象。
在【用户变量区】和在【系统变量区】新建变量的区别是:用户变量区只对当前登录的Windows账号(比如电脑用户名Lenovo)有效,系统变量区对当前的电脑所有用户名有效。当系统变量区查找不到时,会到当前用户变量区查找。
可以根据您的需要新建变量。
环境变量名称是不区分大小写的,比如:PATH和path,两个名称是一样的。
⭐⭐⭐
3)重启【VSCode】和【任务管理器→Windows 资源管理器】。
5.总结
至此Windows下的Python环境编码方式
和VSCode的文件编码方式
统一成了UTF-8,而VSCode的内置终端编码方式固定是UTF-8,是无法修改的,在上面的 2.乱码根因 中笔者已经指出来过了,此时我们在VSCode中编译运行Python代码,在VSCode内置终端输出中文就正常了。