首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将u'\xc3\xa9cosyst\xc3\xa8mes‘解码为utf-8

如何将u'\xc3\xa9cosyst\xc3\xa8mes‘解码为utf-8
EN

Stack Overflow用户
提问于 2019-03-24 11:26:59
回答 2查看 872关注 0票数 1

通过使用BeautifulSoup进行get抓取,我得到了一个查询字符串参数,该参数最终表示为:

代码语言:javascript
运行
复制
param_value = u'\xc3\xa9cosyst\xc3\xa8mes'

在阅读时,我可以猜到它应该被表示为écosytèmes

我尝试了几种编码/转义/解码的方法(如描述的herehere)

但我总是犯这样的错误:

代码语言:javascript
运行
复制
UnicodeEncodeError('ascii', u'\xc3\xa9cosyst\xc3\xa8mes', 0, 2, 'ordinal not in range(128)')

我还尝试了作为重复提出的解决方案:

代码语言:javascript
运行
复制
Python 2.7.15 (default, Jul 23 2018, 21:27:06)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> s = u'\xc3\xa9cosyst\xc3\xa8mes'
>>> s.encode('latin-1').decode('utf-8')
u'\xe9cosyst\xe8mes'

但这让我回到了第一阶段.

u'\xc3\xa9cosyst\xc3\xa8mes'u'écosystèmes'怎么走?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-24 11:31:07

UTF-8被解码为拉丁语-1,所以解决方案是将其编码为拉丁语-1,然后解码为UTF-8。

代码语言:javascript
运行
复制
>>> s = u'\xc3\xa9cosyst\xc3\xa8mes'
>>> s.encode('latin-1').decode('utf-8')
u'\xe9cosyst\xe8mes'
>>> print s.encode('latin-1').decode('utf-8')
écosystèmes
票数 1
EN

Stack Overflow用户

发布于 2019-03-24 11:31:48

我想这会有帮助的:bytes(u'\xc3\xa9cosyst\xc3\xa8mes', 'latin-1').decode('utf-8')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55323297

复制
相关文章

相似问题

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