Как декодировать заголовок электронной почты в кодировке RFC 2047 в Ruby? - PullRequest
3 голосов
/ 20 сентября 2011

У меня есть следующий заголовок:

From: =?iso-8859-1?Q?Marta_Falc=E3o?= <marta.falcao@example.com.br>

Я могу легко разделить материал до <, что оставляет меня с

"=?iso-8859-1?Q?Marta_Falc=E3o?="

Что я могу использовать, чтобы превратить это в "Marta Falcão"?

Ответы [ 2 ]

8 голосов
/ 19 апреля 2013

Использование более новой Mail gem:

Mail::Encodings.value_decode(str) или Mail::Encodings.unquote_and_convert_to(str, to_encoding)

3 голосов
/ 20 сентября 2011

Спасибо Роланду Иллигу за его комментарий, который привел меня к двум вариантам:

  1. установить rfc2047-ruby и позвонить Rfc2047.decode(header)
  2. установить TMail и позвонить TMail::Unquoter.unquote_and_convert_to(header, 'utf-8') или еще лучше TMail::Address.parse(header).friendly, последний из которых убирает <email address> часть
...