为了账号安全,请及时绑定邮箱和手机立即绑定

Python中混合UTF-8编码的解码响应

Python中混合UTF-8编码的解码响应

Qyouu 2022-10-25 10:17:36
我正在使用 aiohttp 从网站下载数据,我得到一个字节对象作为响应,但我很难解码它。这是我得到的回复的一个例子b'\\r\\nLocalit\xc3\xa0' # Localitàb'\\u003cdiv\\u003e12/09/2019\\u003c/div\\u003e\\r\\n' # <div>12/09/2019</div>据我了解,它具有文本的正常 unicode 和 html 标签和换行符的转义 unicode。如果我尝试使用 "str(content, "utf-8")" 对其进行解码,我仍然有这种格式的 html 标签\u003cdiv \u003e12/09/2019\u003c/div\u003e\r\n我应该为每个标签做一个手册.replace("\u003", "<")还是有更优雅的解决方案?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您可以使用'unicode-escape' 编解码器转换 unicode 部分,然后透明地重新编码为字节(latin-1 很方便,因为它提供了字节和字符之间的 1 对 1 对应),然后解码为“utf-8”:

b = b'\\u003cdiv\\u003e12/09/2019\\u003c/div\\u003e\\r\\n\\r\\nLocalit\xc3\xa0'

b.decode('unicode-escape').encode('latin1').decode('utf8')

# '<div>12/09/2019</div>\r\n\r\nLocalità'


查看完整回答
反对 回复 2022-10-25
  • 1 回答
  • 0 关注
  • 90 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信