rails, mysql charsets & encoding: двоичные - PullRequest
1 голос
/ 21 мая 2010

У меня есть приложение 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

1 Ответ

0 голосов
/ 21 мая 2010

Я чувствую, что есть веская причина просто конвертировать, а не вводить что-то, что временно решит вашу проблему, пока вам не понадобится конвертация в будущем.

Я бы избавил себя от будущей боли, просто обратившись сейчас.

...