Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么我的字符串中有“=”而不是“\x”?_Ruby_Email_Encoding_Utf 8_Escaping - Fatal编程技术网

Ruby 为什么我的字符串中有“=”而不是“\x”?

Ruby 为什么我的字符串中有“=”而不是“\x”?,ruby,email,encoding,utf-8,escaping,Ruby,Email,Encoding,Utf 8,Escaping,我正在解析电子邮件正文文本,我在电子邮件源中有以下内容: 多米尼克群岛=8个非里埃斯科国家的多样化经营许可证= 卡皮雷l=92esigenza e cosa=E8坎比亚托=20 我知道客户使用了字符集iso-8859-1。我还知道iso-8859-1中的“\xE8”是utf-8中的章程: "\xE8".encode "UTF-8", "ISO-8859-1" # => "è" 为什么我发现“=E8”而不是“\xE8”?您需要首先从引用的可打印编码解码,然后从ISO-8859-1编码到UT

我正在解析电子邮件正文文本,我在电子邮件源中有以下内容:

多米尼克群岛=8个非里埃斯科国家的多样化经营许可证= 卡皮雷l=92esigenza e cosa=E8坎比亚托=20

我知道客户使用了字符集iso-8859-1。我还知道iso-8859-1中的
“\xE8”
是utf-8中的章程:

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

为什么我发现
“=E8”
而不是
“\xE8”

您需要首先从
引用的可打印编码解码,然后从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

因为这是电子邮件特有的传输编码。你能进一步解释或给我一些链接吗?(很抱歉,我没有在我的应用程序通知中看到该链接)