Ruby unicode邮件接收

时间:2012-05-06 14:56:50

标签: ruby ruby-on-rails-3 unicode

如何在检索到的消息中看到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

告诉我“?????? ..”而不是西里尔字母。

2 个答案:

答案 0 :(得分:1)

我对net / pop并不完全熟悉,但您可能希望使用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 :(得分:1)

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