1

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 に変換することは避けたいと思います。

どうもありがとう!ベンジャミン

4

1 に答える 1

0

将来変換が必要になるまで、問題を一時的に解決する何かを導入するのではなく、変換するだけの説得力のある理由があるように感じます.

今すぐ変換するだけで、将来の苦痛を省くことができます。

于 2010-05-21T16:36:38.947 に答える