我有一个来自电子邮件的主题,它进入我的 rails 3 应用程序,如下所示:
然后我尝试使用 mail.subject 将此主题保存在我的数据库 (mongodb) 中作为字符串字段,但我收到错误"字符串无效 UTF-8"??
有人知道我是如何解决这个问题的吗?
多谢瑞克
您尚未显示任何示例代码,但看起来返回的主题不是 UTF-8 编码的,但您的数据库是。在保存主题之前尝试使用force_encoding
。
mail.subject.force_encoding("UTF-8")
编辑:
对于 ruby 1.8.7,在 Ruby 1.8.7(或 Rails 2.x)中无耻地从 String.force_encoding() 中窃取
require 'iconv'
class String
def to_my_utf8
::Iconv.conv('UTF-8//IGNORE', 'UTF-8', self + ' ')[0..-2]
end
end
然后。。。
mail.subject.to_my_utf8