首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UnicodeEncodeError: ascii编解码器无法对字符进行编码

UnicodeEncodeError: ascii编解码器无法对字符进行编码
EN

Stack Overflow用户
提问于 2012-11-21 20:38:33
回答 1查看 15.3K关注 0票数 11

我有一个带有url响应的字典。像这样:

代码语言:javascript
运行
复制
>>> d
{
0: {'data': u'<p>found "\u62c9\u67cf \u591a\u516c \u56ed"</p>'}
1: {'data': u'<p>some other data</p>'}
...
}

在对此数据值(d[0]['data'])使用xml.etree.ElementTree函数时,我得到了最著名的错误消息:

UnicodeEncodeError: 'ascii' codec can't encode characters...

我应该对这个Unicode字符串做些什么才能使它适合ElementTree解析器?

PS。请不要发送给我与Unicode和Python解释链接。不幸的是,我已经全部读完了,并且不能使用它,希望其他人可以使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-21 20:46:53

您必须手动将其编码为UTF-8:

代码语言:javascript
运行
复制
ElementTree.fromstring(d[0]['data'].encode('utf-8'))

因为API只接受编码的字节作为输入。对于这样的数据,UTF-8是一个很好的默认值。

它将能够从那里再次解码为unicode:

代码语言:javascript
运行
复制
>>> from xml.etree import ElementTree
>>> p = ElementTree.fromstring(u'<p>found "\u62c9\u67cf \u591a\u516c \u56ed"</p>'.encode('utf8'))
>>> p.text
u'found "\u62c9\u67cf \u591a\u516c \u56ed"'
>>> print p.text
found "拉柏 多公 园"
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13493477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档