2011-05-10 130 views
0

我有一个电子邮件的主题是来自于我的轨道3的应用程序是这样的:轨道3邮件宝石

我想,然后在我的数据库(MongoDB中)保存这个问题作为一个字符串场使用mail.subject,但我得到错误“字符串无效的UTF-8”??

任何人都知道我是如何解决这个问题的?

非常感谢 里克

回答

0

您还没有表现出任何的示例代码,但它看起来像主题返回不是UTF-8编码,但你的数据库。在保存主题之前尝试使用force_encoding

mail.subject.force_encoding("UTF-8") 

编辑:

对Ruby 1.8.7,无耻地从String.force_encoding() in Ruby 1.8.7 (or Rails 2.x)

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 
+0

您好,我得到这个错误消息时我尝试你的建议任何想法? undefined method'force_encoding'for FW:在豪华阿拉斯加游艇度假中节省将近2432,000美元!:字符串 – rick 2011-05-10 20:04:22

+0

@rick哦,对不起。那么你必须使用Ruby 1.8?你必须使用'iconv'。看到这个问题寻求帮助:http://stackoverflow.com/questions/4583924/string-force-encoding-in-ruby-1-8-7-or-rails-2-x – ghoppe 2011-05-10 20:11:07

+0

感谢您的帮助排序的作品,但是没有说日语字符,例如当我收到邮件的主题这个文本(パンを食べない。)“我不会吃面包”,并访问mail.subject或mail.subject.to_my_utf8 it comers “(\ e $ B%Q%s $ r?)$ Y $ J $$!#\ e(B)\”我不会吃面包\“” 任何想法如何正确显示/保存?非常感谢 – rick 2011-05-10 21:21:48