扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在python2.x版本中,python默认的编码方式是ASCII编码,当程序中出现非ASCII编码时,程序会报错:
在信丰等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站设计 网站设计制作按需策划,公司网站建设,企业网站建设,高端网站设计,网络营销推广,外贸营销网站建设,信丰网站建设费用合理。UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
因为,此时python无法处理非ASCII编码的程序。
解决这个问题的方法是修改python的默认编码方式,具体方式是,在脚本头部中添加以下代码:
import sys
reload(sys) # 加载python编译系统
sys.setdefaultencoding(‘utf8’) # 把python的默认编码方式修改为“utf-8”方式
2. reload(sys)的应用现状以上是python2的写法,在python3中这个需要已经不存在了,因为python3已经不存在这个问题了:在Python2.x中由于str和byte之间没有明显区别,经常要依赖于defaultencoding来做转换;而在python3中有了明确的str和byte类型区别,从一种类型转换成另一种类型要显式指定encoding。换句话说,python2.x默认使用的是ASCII编码,而python3.X已经默认使用“utf-8”编码了。
但是,即便如此,为了保险起见,或者习惯的原因,很多程序员在python3.x编程中,仍旧保留了 reload(sys)的习惯,不过命令的使用方式发生了变化,变成了以下模式:
import importlib,sys
importlib.reload(sys)
3. 如何查看python默认的编码方式方法:
import sys
sys.getdefaultencoding()
在我的python3.8中的结果:
(base_env) PS D:\code\project>python
Python 3.8.15 (default, Nov 24 2022, 14:38:14) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>import sys
>>>sys.getdefaultencoding()
'utf-8'
>>>
由上可见,python3.8的默认编码方式已经是“utf-8”了。
参考:
Python: 为什么需要reload(sys)后设置编码 - 简书
python 中的reload(sys)_小小小丸子儿的博客-博客_reload(sys)
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流