gpt4 book ai didi

ruby-on-rails - 为什么即使使用 mysql2 gem,ActiveRecord 也会返回编码为 ASCII-8BIT 的字段?

转载 作者:行者123 更新时间:2023-12-01 16:19:30 24 4
gpt4 key购买 nike

我在 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 环境变量,但没有成功。还有其他地方我可以查看或了解为什么我得到这个错误的编码吗?

最佳答案

啊哈!我的知识浅薄再次受到打击。问题确实出在database.yml中:

development:
encoding: utf8
adapter: mysql2
[...]

我仍在使用适配器:mysql,因此即使安装了mysql2 gem,它也没有被使用。我没有意识到我必须在 database.yml 中更改它的名称;我认为它会取代旧的 mysql gem。

现在我们都知道了! :)

关于ruby-on-rails - 为什么即使使用 mysql2 gem,ActiveRecord 也会返回编码为 ASCII-8BIT 的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com