前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UnicodeEncodeError: 'ascii' codec can't encode character...的解决方法

UnicodeEncodeError: 'ascii' codec can't encode character...的解决方法

作者头像
周小董
发布2019-03-25 15:59:50
5.9K0
发布2019-03-25 15:59:50
举报
文章被收录于专栏:python前行者python前行者

在python2.7下,因为想从数据库中读出来分类名进行写入到文件,提示

代码语言:javascript
复制
Traceback (most recent call last):
  File "test.py", line 28, in <module>
    fp.write("%d:%s\r\n"%(sClassid,sClassName))
UnicodeEncodeError: 'ascii' codec can't encode character u'\uff08' in position 12: ordinal not in range(128)

不用fp.write,用print打印却正常,这到底是怎么回来呢?

代码语言:javascript
复制
#! /usr/bin/python
# -*- coding: utf-8 -*-
import sys
print sys.getdefaultencoding();

运行上面的程序提示

ascii

原来如此,在程序的头部加上

代码语言:javascript
复制
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

再次运行,错误消息。

总结一下,python2.7是基于ascii去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinal not in range(128)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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