【发布时间】:2011-12-14 12:48:17
【问题描述】:
我在 Ruby 1.9、Rails 3.0、ActiveRecord 3.0 中遇到了这个错误:
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
发生这种情况是因为我尝试调用gsub 的字符串(直接来自ActiveRecord 对象字段)的编码为ASCII-8BIT。看了几篇文章,帖子和答案,说这是mysql gem编码错误造成的,并提示mysql2。
但我已经在使用 mysql2。我试过0.2.x版本和最新的0.3.7版本都没有解决问题:
irb> str = Discussion.first.content
=> "Something's wrong with encodings..."
irb> str.encoding
=> #<Encoding:ASCII-8BIT>
我已经更改了 MySQL 中的数据库编码和表编码,我还尝试设置 LANG env 变量,但没有成功。还有其他地方我可以查看或了解为什么我得到了错误的编码吗?
【问题讨论】:
-
这里还有一点信息:__ENCODING__、Encoding.default_external 和 Encoding.default_internal 都返回 UTF-8
标签: ruby-on-rails ruby-on-rails-3 activerecord character-encoding ruby-1.9