Tôi đang cố phân tích cú pháp các chuỗi email với số Ruby mail gem và tôi đang có một thời gian với mã hóa ký tự. Đi theo email sau:Mã hóa ký tự với Ruby 1.9.3 và đá quý mail
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
Cơ thể email, khi mã hóa đúng cách, nên là:
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
Tuy nhiên, tôi đang gặp một con quỷ của một thời gian thực sự nhận được dấu nhấn để đi qua. Đây là những gì tôi đã cố gắng:
message = Mail.new(email_string)
body = message.body.decoded
Đó được cho tôi một chuỗi mà bắt đầu như thế này:
This reply has accents:\xA0R\xE9sum\xE9\r\n>\r\n> --------- Reply Above This Line ------------
Cuối cùng, tôi cố gắng này:
body.encoding # => <Encoding:ASCII-8BIT>
body.encode("UTF-8") # => Encoding::UndefinedConversionError: "\xA0" from ASCII-8BIT to UTF-8
Có ai có bất kỳ đề xuất về Làm thế nào để đối phó với điều này? Tôi khá chắc chắn nó đã làm với các "charset = ISO-8859-1" thiết lập trong email, nhưng tôi không chắc chắn làm thế nào để sử dụng đó, hoặc nếu có một cách để dễ dàng giải nén rằng bằng cách sử dụng đá quý mail.
Tuyệt vời. Đã tìm kiếm điều này. Đã kết thúc thực hiện việc này: body = message.text_part.encode ('UTF-8', message.text_part.charset,: invalid =>: replace,: undef =>: replace) –
Awesome ...... Cảm ơn một tun ... – Jyothu
Một số bộ phận dường như có bộ ký tự nil. Tôi không chắc chắn làm thế nào để xử lý những người. –