为什么我的字符串中有 `=` 而不是 `\x`?
Why is there `=` instead of `\x` in my string?
我正在解析一封电子邮件正文,我在电子邮件的来源中有这个:
Questo dominio =E8 aperto e operativo da diversi anni, non riesco a =
capire l=92esigenza e cosa =E8 cambiato.=20
我知道客户端使用了字符集 iso-8859-1。我也知道iso-8859-1中的"\xE8"
是utf-8中的"é"
:
"\xE8".encode "UTF-8", "ISO-8859-1" # => "è"
为什么我找到 "=E8"
而不是 "\xE8"
?
您需要先从 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
我正在解析一封电子邮件正文,我在电子邮件的来源中有这个:
Questo dominio =E8 aperto e operativo da diversi anni, non riesco a = capire l=92esigenza e cosa =E8 cambiato.=20
我知道客户端使用了字符集 iso-8859-1。我也知道iso-8859-1中的"\xE8"
是utf-8中的"é"
:
"\xE8".encode "UTF-8", "ISO-8859-1" # => "è"
为什么我找到 "=E8"
而不是 "\xE8"
?
您需要先从 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