1、白坚咄舢乱码原因。大部分乱码原因都是因为程序和终端默认编码不一致导致,win中文默认编码gbk当然也有人将电脑区域语言设置改成了全球编码utf-8,由于历史原因ASCII、utf-8、gbk互不兼容,因此选择一致的编码十分重要。查看电脑编码可以使用mode命令,暂时切换电脑编码可以使用chcp命令。python2默认编码ASCII而python3默认编码utf-8。因此,当电脑编码为utf-8时设置python2编码为utf-8可以修复乱码,最简单和理应的的修复方式为在代码首行添加 编码声明注释来指定编码为utf-8。形如:# -*- coding: <encoding-name> -*-。参考连接:https://docs.python.org/zh-cn/3/reference/lexical_analysis.html#encoding-declarations
2、如果电脑终端默认编码为gbk,那么可以在程序调用过程中切换其编码为gbk或者暂时设置电脑编码为相应编码。首先作为代执行程序vscode,执行pytho荏鱿胫协n解释器有两者方式,分别为程序自身的自带调试和扩展run code。调试设置可以在相应调试配置程序中设置环境变量为gbk形如"env":{ "PYTHONIOENCODING":"gbk"},而run code插件的设置为setPYTHONIOENCODING=gbk &&python。如下设置文件分别为launch.json和setting.json,位于项目文件下的.vscode文件夹中。
3、但不知何种原因,我这边的python环境变量没有生效,即设置PYTHONIOENCODING为gbk后任然无法修复乱码。即通过VScode调用的python程序此项编码设置没有生效,而我在sublimetext中的设置无论将PYTHONIOENCODING变量零时设置为gbk还是utf-8都是ok的(可能真是程序原因)。因此只能更改电脑的编码设置,永久更改电脑编码设置有两者,分别在电脑的区域设置项里设置为全球或者修改注册表的代码页。方式如下:
4、临时修改电脑编码的方式可以在python解释调用时通过chcp命令切换代码页。utf-8的代码页数字指定为65001,因此在无法将python3输出编码更改为gbk时,将电脑编码临时设置为utf-8,vscode的临时编码设置目前只在run code的选项里可以实现,调试程序配置应该是设置了固定的配置选项格式,因此额外的命令设置会报错。run code的临时编码切换格式如下(此项设置里更改了python程序的调用格式是因为我这里如果采用之前 调用方式会进入python解释器内,而代码文件执行被跳过,因此将执行步骤改成了切换目录并根据文件名称执行):