2012-05-06 41 views
0

如何查看检索到的邮件中的unicode文本?Ruby unicode邮件接收

$require 'net/pop' 
mail_server = Net::POP3.new('mail.yahoo.ru') 
mail_server.start('login','pass') 
mail_server.mails.each do |m| 
    puts m.pop if /Superjob/.match(m.header) 
end 

向我显示“?????? ..”而不是西里尔字母。

回答

1

我不完全熟悉网/流行音乐,但你可能想使用语言Iconv将其与这样的转换为UTF-8:

require 'net/pop' 
require 'iconv' 

mail_server = Net::POP3.new('mail.yahoo.ru') 
mail_server.start('login','pass') 
mail_server.mails.each do |m| 
m = Iconv.conv('UTF8', 'CP1251', m) 
#or m.header = Iconv.conv('UTF8', 'CP1251', m.header) ?? 
puts m.pop if /Superjob/.match(m.header) 
end 
1

您可能需要使用mail gem,它支持多部分消息,所有字段的自动字符集转换等。