我使用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")
这对我没有帮助
我如何编码邮件的主题? 感谢..
答案 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")
。问题已结束