1

我正在查看我的 Rails 应用程序的错误日志,发现有人遇到了以下错误:

"Mysql::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=': SELECT * FROM `tags` WHERE (name = LOWER('?')) LIMIT 1"

我理解这个错误的原因,但是我在尝试修复它时遇到了麻烦,因为我无法复制它。我的数据库连接使用 utf8 连接,并且tags表的排序规则是latin1_swedish_ci,但无论我尝试做什么,我都无法复制错误。

我应该tags改用utf8_general_ci排序规则并希望这能解决问题吗?或者有人有其他想法吗?

4

1 回答 1

2

我上周遇到了同样的问题。在我的情况下,它最终是我latin1_swedish_ci在一个表中列出了一个字段,否则UTF-8。如果您主要运行 UTF-8 数据库并且我们正在谈论字符串数据,那么我会继续更改排序规则并为自己省点麻烦。现在,您可能不会以错误的方式使用它,但是如果您忘记并留下加入该数据,那么您将来可能会遇到麻烦。

于 2010-02-03T21:18:32.353 回答