【问题标题】:Handing Non-UTF8 content in my Rails application appropriately在我的 Rails 应用程序中适当地处理非 UTF8 内容
【发布时间】:2010-10-05 11:53:01
【问题描述】:

我有一个 Rails 应用程序,它允许用户使用 RSS 提要等从各种来源导入信息。我在数据库上的默认编码是 UTF8,我收到了很多关于非 UTF8 数据的异常,这些数据来自系统并在到达数据库后崩溃。

我要使用 is_utf8 适当地检测非 UTF8 数据吗?保存完成之前属性上的方法,但我还没有想出处理它的方法。我已经看到 iconv 进行转换,但似乎需要能够确定我要转换的编码类型。

有没有一种简单的方法来进行猜测转换,或者可能只是去掉非 UTF8 字符,然后保存到数据库中?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby utf-8 character-encoding


    【解决方案1】:

    在切换编码方面,Iconv 是您的朋友。要检测编码,有一个小宝石可用:rchardet 我们已经用它来检测亚洲编码以阻止垃圾邮件,它工作正常。

    【讨论】:

      【解决方案2】:

      非 UTF-8 数据如何进入系统?确保您的所有页面都作为 Content-Type text/html;charset=utf-8 提供,并且浏览器将始终将 UTF-8 数据提交到您的表单。

      (当然,邮件和上传文件之类的内容仍然存在,但很多此类特定上下文通常会为您提供继续编码。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        • 2013-03-31
        • 2022-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多