我正在从django应用程序中转发电子邮件的主题接收sns通知。
Message.content中存在的请求正文json包含奇怪的utf-8格式(即:“ = C3 = A8”表示“è”)以及某些地方的“ =”。

我试图解析它之前加载:

body = request.body.decode('utf-8')

body_unicode = unicode(body)
js = json.loads(body_unicode.replace('\n', ''))


但是我做不到。子字符串“ = C3 = A8”仍在body_unicode中。

最佳答案

这些是引号可打印的字符,它们用于电子邮件中。您正在查看的内容可以在python中转换为普通字符串,如下所示

Python 3.6.1 (default, Apr  4 2017, 09:40:21)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import quopri
>>> data = quopri.decodestring("=C3=A8")
>>> data
b'\xc3\xa8'
>>> data.decode("utf-8")
'è'
>>>


有关更多详细信息,请参见How to understand the equal sign '=' symbol in IMAP email text?

10-06 05:18