zqifa的博客

我不管,反正我最萌~

Python2 报错 LookupError: unknown encoding: cp65001 解决办法

Windows下CMD运行python,执行命令 python2 hello.py 报错,报错信息:LookupError: unknown encoding: cp65001

报错原因:编码不一样

CMD当前活动窗口encoding是 65001 ,即UTF-8编码。
Python2默认编码是ASCII,所以会报错。

网上找了一些解决办法,包括使用win-unicode-console包、sys.setdefaultencoding("utf-8")等,不过都没有解决问题。

1.使用win-unicode-console包的方法(未解决)
设置完encoding变量后安装win-unicode-console python包,根源上解决问题
包的作用:从Windows控制台运行Python时,可以启用Unicode输入和显示的Python包

输入下列代码:pip2 install win-Unicode-console

2.使用sys.setdefaultencoding("utf-8")设置编码的方法(未解决)

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

解决方法:添加 PYTHONIOENCODING 环境变量解决了问题。

设置 Python encoding 相关环境变量,添加名称为 PYTHONIOENCODING 的环境变量($env:PYTHONIOENCODING = "UTF-8"),值为UTF-8,保持CMD编码和Python2编码一致,都为UTF-8就行了。

执行命令 python2 hello.py 就可以正常输出了。

附:修改CMD的编码模式的命令

1.修改CMD编码为GBK
chcp 936
2.修改CMD编码为UTF-8
chcp 65001

done!

作者:zqifa

出处:https://www.l1mn.com

原文地址:https://www.l1mn.com/p/yf6ew4.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

Copyright © zqifa 联系方式:z___qf@163.com