Python IMAP: =? Utf-8? Q? в строке темы
Я показываю новое письмо с IMAP
, и все выглядит отлично, за исключением одного объекта сообщения, как:
=?utf-8?Q?Subject?=
Как я могу это исправить?
Ответы
Ответ 1
В терминологии MIME эти закодированные куски называются закодированными словами. Вы можете декодировать их следующим образом:
import email.Header
text, encoding = email.Header.decode_header('=?utf-8?Q?Subject?=')[0]
Подробнее читайте в документах email.Header
.
Ответ 2
Это MIME закодированное слово. Вы можете проанализировать его с помощью email.header
:
import email.header
def decode_mime_words(s):
return u''.join(
word.decode(encoding or 'utf8') if isinstance(word, bytes) else word
for word, encoding in email.header.decode_header(s))
print(decode_mime_words(u'=?utf-8?Q?Subject=c3=a4?=X=?utf-8?Q?=c3=bc?='))