【问题标题】:How can i encode my email subject in ruby?如何在 ruby​​ 中编码我的电子邮件主题?
【发布时间】:2013-11-16 05:25:39
【问题描述】:

我使用 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")

这对我没有帮助

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

【问题讨论】:

    标签: ruby-on-rails gmail


    【解决方案1】:

    "=?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")。问题已结束

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2014-05-24
      • 2011-11-20
      • 1970-01-01
      • 2011-09-02
      • 2011-07-17
      • 2011-06-21
      相关资源
      最近更新 更多