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そうでなければテーブルのようにリストされた1つのフィールドがあったということになりましたUTF-8。主に UTF-8 データベースを実行していて、文字列データについて話している場合は、先に進んで照合順序を変更し、問題を解決します。現時点ではエラーが発生するような使い方をしていないかもしれませんが、たとえばそのデータを忘れて結合したままにしておくと、将来問題が発生する可能性があります。

于 2010-02-03T21:18:32.353 に答える