前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决Python2中文ascii编码的方法

解决Python2中文ascii编码的方法

作者头像
沈唁
发布2019-05-22 15:13:45
1.1K0
发布2019-05-22 15:13:45
举报
文章被收录于专栏:沈唁志

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

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

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

代码语言:javascript
复制
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修改编码

代码语言:javascript
复制
sys.getdefaultencoding() 
# 获取系统当前编码,一般默认为 ascii
sys.setdefaultencoding() 
# 设置系统默认编码

所以在代码中的import后增加下面几行代码:

代码语言:javascript
复制
import sys
if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')

加了一个reload(sys)是因为Python2.x初始化后会删除sys.setdefaultencoding这个方法,我们需要重新载入

就这样

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档