我正在从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?