mlt*_*tsy 7 activerecord ruby-on-rails character-encoding ruby-on-rails-3 ruby-1.9
我在Ruby 1.9,Rails 3.0,ActiveRecord 3.0中遇到了这个错误:
incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为我试图调用的字符串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>
Run Code Online (Sandbox Code Playgroud)
我在MySQL中更改了数据库编码和表编码,我也尝试过设置LANG env变量而没有运气.有没有其他我可以看到或看到为什么我得到这个错误的编码?
啊哈!我的知识浅薄再次袭来.问题确实存在于database.yml中:
development:
encoding: utf8
adapter: mysql2
[...]
Run Code Online (Sandbox Code Playgroud)
我仍在使用adapter: mysql
,即使mysql2
安装了宝石,它也没有被使用.我没有意识到我必须改变它的名字database.yml
; 我以为它会取代旧的mysql
宝石.
现在我们都知道了!:)
归档时间: |
|
查看次数: |
2679 次 |
最近记录: |