Как определить кодировку? - PullRequest
0 голосов
/ 08 октября 2019

Проблема

У меня электронное письмо, в котором у меня проблемы с чтением в Python с правильной кодировкой, хотя Outlook может правильно его прочитать.

Чтение сообщения

import email
message = email.message_from_file(open('/path/to/file.eml'))

Пример

Это часть электронного письма, которое должно быть расшифровано как "Denne her får du":

Content-Type: text/plain;
    charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Denne=20her=20f=EF=BF=BDr=20du

Когда я декодирую его с помощью UTF-8, я получаю следующее:

import quopri
mystring = 'Denne=20her=20f=EF=BF=BDr=20du'
decoded_string = quopri.decodestring(mystring)
print(decoded_string.decode('utf-8'))
>Denne her f�r du

Когда я просто открываю электронное письмо в Outlook, я получаю:

"Denne her får du"

Как правильно его декодировать?

Есть ли где-то еще в электронном письме, что я вижу правильную кодировку? Там должно быть правильно? Иначе, как Outlook может декодировать сообщение?

...