2017-08-11 15 views
0

我正在接收來自django應用程序轉發電子郵件主題的sns通知。 Message.content中的請求主體json包含奇怪的utf-8格式(即:「= C3 = A8」表示「è」),還有一些「=」在某處。AWS sns電子郵件通知接收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

+0

'decode'翻譯字節unicode字符串。你爲什麼'unicode'解碼字符串的結果?什麼= C3 = A8? 'è'的url轉義碼是'%C3%A8'。 – stamaimer

回答

0

這些是報價可打印的字符,它們用於電子郵件。你是在尋找可以轉換爲在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?

+0

謝謝塔倫,這正是我需要的。 –