Как парсить немецкий умлаут и другие специальные символы из электронных писемPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как парсить немецкий умлаут и другие специальные символы из электронных писем

Сообщение Anonymous »


Я пытаюсь проанализировать электронное письмо, используя модуль email Python с его Parser(), предоставляемым подмодулем email.utils.

Однако есть некоторые специальные символы, которые мне не удалось правильно проанализировать/преобразовать.

Вот сценарий, который я получил на данный момент:

импортировать систему импортировать электронную почту из email.parser импортировать парсер full_msg = Parser().parse(sys.stdin) msg =full_msg # эта уродливая строка — часть предыдущей отладки отправитель = сообщение['от'] to = сообщение['to'] тема = сообщение['тема'] тело = msg.get_payload() дата = сообщение['Дата'] fname = '{}.txt'.format(дата) с open(fname, 'w') как f: f.write('{:10}{}\n'.format('Фон:', отправитель)) f.write('{:10}{}\n'.format('An:', to)) f.write('{:10}{}\n'.format('Betreff:', subject)) f.write('{}\n'.format(тело)) Поскольку я анализирую как международные, так и немецкие письма, мне приходится иметь дело с так называемым «умлауте» (ä, ü, ö) и некоторые другие символы, такие как ß и многоточие (...).

Например, тело типа

Würde Dürfte Könnte получить

W=C3=BCrde D=C3=BCrfte K=C3=B6nnte= и тема

Для быстрого запуска двигателя становится

=?utf-8?Q?Das_d=C3=BCrfte_jetzt_klappen?= Есть ли способ решить эти проблемы с кодированием/декодированием? Что мне не хватает?

ОБНОВЛЕНИЕ 1:

Язык системы, соответственно. кодировка была установлена ​​на en_US.UTF-8. Я изменил его на de_DE.UTF-8, перенастроив доступные локали. Однако это нисколько не изменило результат. локаль дает:

LANG=de_DE.UTF-8 ЯЗЫК= LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL= ОБНОВЛЕНИЕ 2:

Я узнал, что этот тип форматирования строк называется Quoted-printable. Для обработки этого формата существует модуль Python под названием quopri, но мне не удалось получить удовлетворительные результаты. Однако я перешел на JavaScript с помощью MailParser, который работает просто великолепно.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»