Ruby on rails RoR将邮件主题从KOI8-R编码为UTF-8不';行不通

Ruby on rails RoR将邮件主题从KOI8-R编码为UTF-8不';行不通,ruby-on-rails,ruby,encoding,utf-8,Ruby On Rails,Ruby,Encoding,Utf 8,我在RubyonRails中解码邮件主题时遇到问题。 我尝试对邮件主题进行编码:“=?KOI8-R?B?z9Qg09XQxdLXwcraxdLB?=” 为什么我的代码不起作用?例如: # My starting string: rus = "привет" # generate fake email subject require 'mail' msg_subject = Mail::Encodings.decode_encode(rus.encode(Encoding::KOI8_R),

我在RubyonRails中解码邮件主题时遇到问题。 我尝试对邮件主题进行编码:“=?KOI8-R?B?z9Qg09XQxdLXwcraxdLB?=”

为什么我的代码不起作用?

例如:

# My starting string:
rus = "привет"

# generate fake email subject
require 'mail'
msg_subject = Mail::Encodings.decode_encode(rus.encode(Encoding::KOI8_R), :encode)
# => "=?KOI8-R?B?0NLJ18XU?="


Mail::Encodings.value_decode("=?KOI8-R?B?0NLJ18XU?=")
=> "привет"
这将作为UTF-8(ruby默认值)返回。如果您想将其发送到KOI8\u R,您可以再次编码(或者如果您感到有风险,.force\u编码)

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 >
# My starting string:
rus = "привет"

# generate fake email subject
require 'mail'
msg_subject = Mail::Encodings.decode_encode(rus.encode(Encoding::KOI8_R), :encode)
# => "=?KOI8-R?B?0NLJ18XU?="


Mail::Encodings.value_decode("=?KOI8-R?B?0NLJ18XU?=")
=> "привет"