2017-08-11 9 views
0

djangoアプリケーションでトピック転送電子メールからsns通知を受け取りました。 Message.contentに存在するリクエストボディjsonには、奇妙なutf-8フォーマット(つまり、 "= C3 = A8"は "è")が含まれています。AWS sns電子メール通知は、= C3 = A8のようにutf-8文字を受信します。

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

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

しかし、私はすることができませんよ。

私は負荷にする前に、それを解析しようとしています。部分文字列 "= C3 = A8"はまだbody_unicodeにあります。

+0

'を参照してください。デコードされた文字列の結果をなぜ「Unicode」しますか?そして、 '= C3 = A8'は何ですか? 'è'のURLエスケープコードは'%C3%A8'です。 – stamaimer

答えて

0

これらは印刷可能な文字で、電子メールで使用されます。詳細については

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") 
'è' 
>>> 

下に示すように、あなたはPythonで、通常の文字列に変換することができます見ているのは何のUnicode文字列にバイトを変換decode` How to understand the equal sign '=' symbol in IMAP email text?

+0

タルンさん、ありがとう、それは私が必要としていたものです。 –

関連する問題