У меня есть приложение rails, которое работает с использованием utf-8. Он использует базу данных mysql, все таблицы с кодировкой по умолчанию mysql и сортировкой (то есть latin1). Поэтому таблицы latin1 содержат данные utf-8. Конечно, это не приятно, но меня это не очень интересует. Все работает нормально, потому что кодирование соединения также является латинским, и поэтому mysql не конвертирует между кодировками.rails, mysql charsets & encoding: binary
только одна проблема: я нужен полнотекстовый индекс UTF-8 для одной таблицы:
mysql> show create table autocompletephrases;
... AUTO_INCREMENT=310095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Но: я не хочу, чтобы конвертировать между кодировками в моей рельсы приложения. Поэтому я хотел бы знать, если я мог бы просто установить конфиг/database.yml
production:
adapter: mysql
>>>> encoding: binary
...
который только называет SET NAMES «двоичная» при подключении к MySql. Похоже, что это работает для моего случая, потому что я предполагаю, что он заставляет mysql -not- конвертировать между кодировками (mySQL docs). Кто-нибудь знает о проблемах в этом? Любые побочные эффекты?
Или у вас есть другие предложения? Но я хотел бы избежать преобразования всей моей базы данных в utf-8.
Большое спасибо! Benjamin
'У меня есть машина. Квадратные колеса, но мне кажется, все в порядке. Только одна проблема: я хочу напасть. Есть ли какие-нибудь предложения? «Разумная причина избежать единственно правильного решения? –