猿问

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

我正在使用 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", "<")还是有更优雅的解决方案?


Qyouu
浏览 91回答 1
1回答

喵喵时光机

您可以使用'unicode-escape'&nbsp;编解码器转换 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à'
随时随地看视频慕课网APP

相关分类

Python
我要回答