2010-05-21 3 views
1

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

+0

'У меня есть машина. Квадратные колеса, но мне кажется, все в порядке. Только одна проблема: я хочу напасть. Есть ли какие-нибудь предложения? «Разумная причина избежать единственно правильного решения? –

ответ

0

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

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