解决Python2中文ascii编码的方法

YiiChina签到的时候,常常会看到有人在说说里面发群主是最帅的,yii 是 PHP 最好的框架,没有之一,就想到使用一言,在天天签到的时候也发一句话javascript

同时使用方糖将内容推送到微信,防止有什么不对的内容,方便上去修改java

昨天晚上抽空搞得时候,发现报错了:微信

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-8yii

使用Python自带模块sys修改编码编码

sys.getdefaultencoding() # 获取系统当前编码,通常默认为 ascii sys.setdefaultencoding() # 设置系统默认编码

因此在代码中的import后增长下面几行代码:spa

import sys
if sys.getdefaultencoding() != 'utf-8': reload(sys) sys.setdefaultencoding('utf-8')

加了一个reload(sys)是由于Python2.x初始化后会删除sys.setdefaultencoding这个方法,咱们须要从新载入code

相关文章
相关标签/搜索