У меня есть приложение rails, которое работает с использованием utf-8. Он использует базу данных mysql, все таблицы с набором символов и сопоставлением по умолчанию для mysql (т.е. latin1). Поэтому таблицы latin1 содержат данные utf-8. Конечно, это нехорошо, но мне это не очень интересно. Все работает нормально, потому что кодировка соединения также латиница 1 и, следовательно, mysql не конвертирует между кодировками.
Только одна проблема: мне нужен полнотекстовый индекс 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
...
, который просто называет SET NAMES «двоичным» при подключении к mySQL. Похоже, что это работает для моего случая, потому что я предполагаю, что это заставляет mysql не конвертировать между кодировками ( mySQL docs ). Кто-нибудь знает о проблемах с этим? Есть ли побочные эффекты?
Или у вас есть другие предложения? Но я бы хотел избежать конвертации всей моей базы данных в utf-8.
Большое спасибо!
Benjamin