utf-8 を使用して実行される Rails アプリがあります。これは、mysql データベース、mysql のデフォルトの文字セットと照合 (すなわち latin1) を持つすべてのテーブルを使用します。したがって、latin1 テーブルには utf-8 データが含まれます。確かに、それはいいことではありませんが、私はあまり興味がありません。接続エンコーディングも latin1 であるため、mysql は文字セット間で変換しないため、すべて正常に動作します。
1 つだけ問題があります。1 つのテーブルに utf-8 フルテキスト インデックスが必要です。
mysql> show create table autocompletephrases;
... AUTO_INCREMENT=310095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
しかし: Rails アプリで文字セットを変換したくありません。したがって、 config/database.yml を設定できるかどうか知りたいです
production:
adapter: mysql
>>>> encoding: binary
...
mySQL に接続するときに SET NAMES 'binary' を呼び出すだけです。私の場合はうまくいくようです。これは、mysql が文字セット間で変換しないようにするためです ( mySQL docs )。これを行うことに関する問題について誰かが知っていますか? 副作用はありますか?
または、他に何か提案はありますか?しかし、データベース全体を utf-8 に変換することは避けたいと思います。
どうもありがとう!ベンジャミン