2014-02-13 74 views
0

我工作的一封邮件应用程序使用Ruby的乐趣和实践和邮件的人有这个问题:UTF-8编码字符集

=?UTF-8?B?4p22IEFuZHJvaWQgc3RpY2sgbWsgODA5aXYgKyB1c2IyZXRoZXJuZXQgYWRh?=\r\n 
     =?UTF-8?B?cHRlciAtNDYlIOKdtyBKb3NlcGggSm9zZXBoIGtldWtlbmNhcnJvdXNlbCAt?=\r\n 
     =?UTF-8?B?NTUlIOKduCA0IENlcnJ1dGkgYm94ZXJzaG9ydHMgLTcxJSDinbkgQXJub3Zh?=\r\n 
     =?UTF-8?B?IDkwIEc0IHRhYmxldCAtNDIl?= 

我发现我在看一个Base64字符串并且=?UTF-8?B??=之间的部分需要从Base64解码为UTF-8。

有人可以解释我需要如何在Ruby中解码这样的字符串?

+0

什么是用于加密数据的加密技术? –

+0

我不知道,这只是我收到的邮件的主题..我可以从这封邮件的标题中获得加密信息吗? –

回答

1

尝试Base64模块的,参见例如:

require "base64" 

enc = Base64.encode64('Send reinforcements') 
       # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n" 
plain = Base64.decode64(enc) 
       # -> "Send reinforcements" 

由于=?UTF-8?B?设定适当或编码,其中,所述原始字符串进行编码,则需要存在于电子邮件消息。我相信没有定义代码页的字符串默认为

+0

谢谢,这会让我更进一步!那么'=?UTF-8?B?'是什么情况呢,阅读这个文件以便使用正确的解码是可行的,或者我可以用正则表达式去除它? –

+0

@Tim我已经回答了 –

+0

太棒了!我在头文件中没有找到任何编码信息,但是使用了这个正则表达式'scan(/ \ =?UTF-8 \?B \?([^“] *)\?= /)'它创建了一个2个数组(?)的字符串。 –