解决Python2中文ascii编码的方法
Posted zwq-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Python2中文ascii编码的方法相关的知识,希望对你有一定的参考价值。
在YiiChina
签到的时候,经常会看到有人在说说里面发群主是最帅的,yii 是 php 最好的框架,没有之一
,就想到使用一言,在每天签到的时候也发一句话
同时使用方糖将内容推送到微信,防止有什么不对的内容,方便上去修改
昨天晚上抽空搞得时候,发现报错了:
UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in position 0: ordinal not in range(128)
再三确认文件头含有# coding=utf-8
,没问题啊
经过搜索,发现应该是因为Python2.x
的默认编码是ascii
,而代码中可能由utf-8
的字符导致,解决方法是设置utf-8
使用Python
自带模块sys
修改编码
sys.getdefaultencoding()
# 获取系统当前编码,一般默认为 ascii
sys.setdefaultencoding()
# 设置系统默认编码
所以在代码中的import
后增加下面几行代码:
import sys
if sys.getdefaultencoding() != ‘utf-8‘:
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
加了一个reload(sys)
是因为Python2.x
初始化后会删除sys.setdefaultencoding
这个方法,我们需要重新载入
以上是关于解决Python2中文ascii编码的方法的主要内容,如果未能解决你的问题,请参考以下文章
解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
怎么解决python "Non-ASCII character"错误
python2(中文编码问题):UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1