【发布时间】:2014-08-08 19:32:23
【问题描述】:
我在 Ruby on Rails 中解码邮件主题时遇到问题。 我尝试编码邮件主题:“=?KOI8-R?B?z9Qg09XQxdLXwcraxdLB?=
<% if /koi8-r/ =~ msg.subject or /KOI8-R/ =~ msg.subject %>
<% subj = msg.subject.gsub(/=\?.*\?B\?/, '') %>
<% subj = subj.gsub(/\?=/, '') %>
<%= Base64.decode64(subj).force_encoding("KOI8-R").encode("UTF-8", :invalid=>:replace, :replace=>"?")
并得到错误: 不兼容的字符编码:ASCII-8BIT 和 UTF-8
但如果我在 irb 中这样做,一切正常:
2.0.0p247 :009 > subj = "z9Qg09XQxdLXwcraxdLB"
=> "z9Qg09XQxdLXwcraxdLB"
2.0.0p247 :010 > Base64.decode64(subj).force_encoding("KOI8-R").encode("UTF-8", :invalid=>:replace, :replace=>"?")
=> "от супервайзера"
2.0.0p247 :011 >
为什么我的代码不起作用?
【问题讨论】:
标签: ruby-on-rails ruby encoding utf-8