- 论坛徽章:
- 0
|
终端是utf-8的
邮件标题有中文
这种方式解出来
返回的envelope.from[0].name => "=?GB2312?B?wfXQ+Q==?="
"\u0018\u001D纷`p}t>"
"\u0018\u001D纷`p}H4>"
类似这样
Encoding.default_external = Encoding::UTF_8
require 'net/imap'
require 'base64'
imap = Net::IMAP.new('imap.gmail.com', 993, true)
imap.login('user', 'pass')
imap.select('INBOX')
imap.search(["UNSEEN"]).each do |message_id|
envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
name = envelope.from[0].name
name =~ /.*?\?([^\?]+)\?(.*?)$/;
code = $1
name = Base64.decode64(name)
name.encode!('UTF-8',code)
p name.force_encoding("UTF-8")
end
|
|