【问题标题】:Why request.remote_ip.encoding is ASCII-8BIT?为什么 request.remote_ip.encoding 是 ASCII-8BIT?
【发布时间】:2012-10-07 05:29:48
【问题描述】:

<%= request.remote_ip.encoding %> 的输出是ASCII-8BIT

当我在 SQLite 中存储 request.remote_ip 值时,会出现“Binary data inserted for string type on column 'remote_ip'”消息。

那么,我应该在存储到 SQLite 之前“强制编码”吗?或者,有没有我可以让request.remote_ip 默认为UTF-8(或者ASCII-7BIT)的配置?

OS X Lion
ruby 1.9.3p194 
Rails 3.2.8
sqlite3 (1.3.6)
sqlite3-ruby (1.3.2)

【问题讨论】:

  • 您还在经历这种情况吗?在这里讨论github.com/rails/rails/issues/2743 - 我遇到了类似的问题,但在我的情况下,唯一的选择是使用 force_encoding('UTF-8')
  • @HannesBenson 也许您可以将您的发现放在答案中,这样我就可以相信您了。

标签: ruby-on-rails ruby-on-rails-3 sqlite encoding


【解决方案1】:

我遇到了类似的问题并在此处阅读了讨论:https://github.com/rails/rails/issues/2743。我唯一的解决方法是使用 force_encoding('UTF-8') 来确保 remote_ip 字符串编码是 utf-8。

【讨论】:

    猜你喜欢
    • 2021-05-10
    • 1970-01-01
    • 2011-06-19
    • 2020-05-25
    • 2014-04-10
    • 2011-12-14
    • 1970-01-01
    • 2013-06-22
    • 2018-03-29
    相关资源
    最近更新 更多