Estoy tratando de analizar las cadenas de correo electrónico con el Ruby mail gem, y estoy teniendo un diablo de tiempo con codificaciones de caracteres. Tome el siguiente correo electrónico:Codificación de caracteres con Ruby 1.9.3 y la gema de correo
MIME-Version: 1.0
Sender: [email protected]
Received: by 10.142.239.17 with HTTP; Thu, 14 Jun 2012 06:00:18 -0700 (PDT)
Date: Thu, 14 Jun 2012 09:00:18 -0400
Delivered-To: [email protected]
X-Google-Sender-Auth: MxfFrMybNjBoBt4O4GwAn9cMsko
Message-ID: <[email protected]om>
Subject: Re: [Lorem Ipsum] Foo updated the forum topic 'Reply by email test'
From: Foo Bar <[email protected]>
To: Foo <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
This email has accents:=A0R=E9sum=E9
>
> --------- Reply Above This Line ------------
>
> Email parsing with accents: R=E9sum=E9
>
> Click here to view this post in your browser
El cuerpo del correo electrónico, cuando se codifica correctamente, debería ser:
This reply has accents: Résumé
>
> --------- Reply Above This Line ------------
>
> Email parsing with accents: Résumé
>
> Click here to view this post in your browser
Sin embargo, estoy teniendo un diablo de un tiempo realmente conseguir las tildes para salir adelante. Esto es lo que he intentado:
message = Mail.new(email_string)
body = message.body.decoded
que me pone una cadena que comienza así:
This reply has accents:\xA0R\xE9sum\xE9\r\n>\r\n> --------- Reply Above This Line ------------
Por último, intento esto:
body.encoding # => <Encoding:ASCII-8BIT>
body.encode("UTF-8") # => Encoding::UndefinedConversionError: "\xA0" from ASCII-8BIT to UTF-8
¿Alguien tiene alguna sugerencia sobre ¿Como lidiar con esto? Estoy bastante seguro de que tiene que ver con la configuración "charset = ISO-8859-1" en el correo electrónico, pero no estoy seguro de cómo usar eso, o si hay una forma de extraerlo fácilmente usando la gema del correo.
Impresionante. Estado buscando esto Terminó haciendo esto: body = message.text_part.encode ('UTF-8', message.text_part.charset,: invalid =>: replace,: undef =>: replace) –
Impresionante ...... Gracias tun ... – Jyothu
Algunas partes parecen tener un juego de caracteres nil. Todavía no estoy seguro de cómo manejarlos. –