我正在查看我的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
整理,并希望这可以解决问题吗?或者有没有人有其他想法?
答案 0 :(得分:2)
上周我遇到了同样的问题。在我的情况下,我最终得到的一个字段在latin1_swedish_ci
的表中列为UTF-8
。如果您主要运行UTF-8数据库并且我们正在讨论字符串数据,那么我将继续进行更改整理并为您省去一些麻烦。现在你可能没有以错误的方式使用它,但如果你忘记并继续加入这些数据,那么你可能会在将来遇到麻烦。