win10 系统下 VScode Python 中文输出乱码处理办法

一般出这个问题多数是文本与执行软件使用的编码方式不统一,编码方式一般就是gbk(代号936),或者utf-8(65001),现在我们把编码方式固定为utf-8 格式

首先查看执行代码的编码方式,

win10 系统下 VScode Python 中文输出乱码处理办法_第1张图片

win10 系统下一般使用cmd或者powershell 作为控制台

那么需要看一下cmd 或者power shell 的编码方式,在cmd或者powershell里输入

chcp

win10 系统下 VScode Python 中文输出乱码处理办法_第2张图片win10 系统下 VScode Python 中文输出乱码处理办法_第3张图片

可以看到我的cmd编码方式是utf-8(65001),而powershell方式为 gbk(936)。

现在我们只需要把控制台的编码格式改成utf-8格式,在cmd或者powershell里 输入

chcp 65001

再执行程序的话,应该就不会乱码了。

win10 系统下 VScode Python 中文输出乱码处理办法_第4张图片

至此我们问题已经解决一半了,说解决一半是因为我们这样修改只对当前控制台有效,下次再开控制台的时候,还得再输入相同的命令,怎么样能永久解决这个问题,下面说一下方法

(a)对于cmd,采用修改注册表的方法,

1.win+R键输入regedit打开注册表

2.找到HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor,

右键新建一个字符串值(S), 取名叫Autorun,值设为 chcp  65001,即

"Autorun"="chcp 65001"

确定保存退出。

(b)powershell修改配置文件的方法

Powershell的配置文件(PROFILE)来实现。PROFILE默认文件不存在,需要创建。

New-Item $PROFILE -ItemType File -Force

此时会在用户文件夹下产生一个ps1文件,该文件会在Powershell启动的时候加载。在这个配置文件的
!! 开头 !!!加上一句:

[System.Console]::OutputEncoding=[System.Text.Encoding]::GetEncoding(65001)

当然,这里就涉及到了Powershell的执行策略(Execution Policy)的问题,你需要设置允许 Powershell执行脚本,
我是用的Unrestricted 策略:

Set-ExecutionPolicy Unrestricted

poweshell4种常用的执行策略:

Restricted: 

禁止运行任何脚本和配置文件。

AllSigned 

可以运行脚本,但要求所有脚本和配置文件由可信发布者签名,包括在本地计算机上编写的脚本。

RemoteSigned 

可以运行脚本,但要求从网络上下载的脚本和配置文件由可信发布者签名;       不要求对已经运行和已在本地计算机编写的脚本进行数字签名。

Unrestricted 

可以运行未签名脚本。(危险!)  

       


有提到在区域--语言设置里改,https://www.zhihu.com/question/54724102/answer/380875686,这种方法不建议,会出问题。

此外补充几个重新安装pip的方法

第一种(优先采用):

python -m pip install --upgrade pip
python -m pip install -U --force-reinstall pip

上面两个命令如果都失败了

pip install --user --upgrade pip

第二种:

1: 删除 Python*\Lib\site-packages\pip-*.dist-info、Python*\Scripts\pip*.exe
2:在终端键入

python -m pip install --upgrade pip
 

如果还不行的话,要么找pip的源码编译安装,要么重装python

有什么问题欢迎在评论区讨论。

你可能感兴趣的:(VScode,windows,windows,python,cmd,PowerShell,乱码)