一般出这个问题多数是文本与执行软件使用的编码方式不统一,编码方式一般就是gbk(代号936),或者utf-8(65001),现在我们把编码方式固定为utf-8 格式
首先查看执行代码的编码方式,
win10 系统下一般使用cmd或者powershell 作为控制台
那么需要看一下cmd 或者power shell 的编码方式,在cmd或者powershell里输入
chcp
可以看到我的cmd编码方式是utf-8(65001),而powershell方式为 gbk(936)。
现在我们只需要把控制台的编码格式改成utf-8格式,在cmd或者powershell里 输入
chcp 65001
再执行程序的话,应该就不会乱码了。
至此我们问题已经解决一半了,说解决一半是因为我们这样修改只对当前控制台有效,下次再开控制台的时候,还得再输入相同的命令,怎么样能永久解决这个问题,下面说一下方法
(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
有什么问题欢迎在评论区讨论。