如何在ruby中编码我的电子邮件主题?

时间:2013-11-16 05:25:40

标签: ruby-on-rails gmail

我使用gmail gem从gmail.com收到邮件。

gm = Gmail.connect addr, pass

in_m = gm.inbox.find(:before => 5.days.ago).last

puts in_m.text_part.body # shows "Привет ...."


puts in_m.subject  # shows "=?KOI8-R?B?z9Qg09XQxdLXwcraxdLB?=" 

puts in_m.subject.encoding    # shows #<Encoding:US-ASCII> 

我试过

in_m.subject.encode("UTF-8")
in_m.subject.force_encoding("KOI8-R").encode("UTF-8")
in_m.subject.force_encoding("US-ASCII").encode("UTF-8")

这对我没有帮助

我如何编码邮件的主题? 感谢..

1 个答案:

答案 0 :(得分:0)

"=?KOI8-R?B?z9Qg09XQxdLXwcraxdLB?="这样的字符串是mime编码的单词,这个解码为Base64, charset=KOI8-R。 mimeWord的结构是=?charset?decode type?decoded string ?=。因此,如果获取字符串“z9Qg09XQxdLXwcraxdLB”的一部分并用Base64解码,则编码为UTF-8一切正常。 Base64.decode64("z9Qg09XQxdLXwcraxdLB").encode("UTF-8")。问题已结束