2015-09-25 41 views
0

我解析电子邮件正文文本,我有这样的电子邮件的来源:为什么在我的字符串中有`=`而不是` x`?

Questo DOMINIO = E8 Aperto公司Ëoperativo达diversi安妮,非列斯科A = capire L = 92esigenzaËCOSA = E8 cambiato。= 20

我知道客户端使用了字符集iso-8859-1。我也知道,"\xE8"在ISO 8859是包机"é"在UTF-8:

"\xE8".encode "UTF-8", "ISO-8859-1" # => "è" 

为什么我觉得"=E8",而不是"\xE8"

+2

因为这是专门针对电子邮件的传输编码。 https://en.wikipedia.org/wiki/Quoted-printable – deceze

+0

你可以进一步解释还是给我一些链接? (对不起,我没有看到通知我的应用程序的链接) – ciaoben

回答

2

您需要首先从解码编码quoted-printable,然后从ISO-8859-1编码为UTF-8:

string = "Questo dominio =E8 aperto e operativo da diversi anni, non riesco a = capire l=92esigenza e cosa =E8 cambiato.=20" 
puts Mail::Encodings::QuotedPrintable.decode(string).encode('UTF-8', 'ISO-8859-1') 
# => Questo dominio è aperto e operativo da diversi anni, non riesco a = capire l=92esigenza e cosa =E8 cambiato.=20 
相关问题