为什么request.remote_ip.encoding是ASCII-8BIT?

时间:2012-10-17 02:17:16

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

<%= 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)

1 个答案:

答案 0 :(得分:0)

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