我如何在检索到的消息中看到 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
显示“??????..”而不是西里尔字母。
我如何在检索到的消息中看到 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
显示“??????..”而不是西里尔字母。
我对 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
您可能想使用邮件 gem,它支持多部分消息、所有字段的自动字符集转换等。