我正在解析电子邮件正文,我在电子邮件的来源中有这个:
Questo dominio = E8 aperto e operativo da diversi anni,non riesco a = capire l = 92esigenza e cosa = E8 cambiato。= 20
我知道客户端使用了charset iso-8859-1。我也知道iso-8859-1中的self._settings.addOption(Option('app_windowconfig', ''))
self._settings.addOption(Option('app_resolution', '640x480'))
self._settings.addOption(Option('app_window_size', ''))
self._settings.addOption(Option('app_fullscreen', 'false'))
self._settings.addOption(Option('app_show_cursor', 'true'))
self._settings.addOption(Option('app_rotation', 'normal'))
self._settings.addOption(Option('app_panel_fontsize', '10'))
self._settings.addOption(Option('app_mouse_enabled', 'true'))
self._settings.addOption(Option('multitouch_enabled', 'false'))
self._settings.addOption(Option('multitouch_driver', ''))
self._settings.addOption(Option('multitouch_tuio_port', ''))
self._settings.addOption(Option('log_avg_categories', ''))
是utf-8中的章程"\xE8"
:
"é"
为什么我找到"\xE8".encode "UTF-8", "ISO-8859-1" # => "è"
而不是"=E8"
?
答案 0 :(得分: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