С внесением в код Rails набора изменений 5223 мы можем ответственно заявить, что теперь мы предоставляем более чем пристойную поддержку Unicode в Rails, примерно на уровне MediaWiki. С опциональным бакендом на С для ускорения самых емких операций, полностью в нативном для Ruby UTF-8.

Чтобы быть точнее, внутри Rails, сегодня, на любой инсталляции Ruby на любом сервере мы предоставляем оттестированную, соответствующую Unicode 5.0 реализацию следующих функций:

  • Конверсия регистра из прописных в строчные и обратно
  • Нормализация и композиция во всех формах
  • Разбиение на читаемые буквы (кластеры графем) поверх стандартного разделения на кодпойнты
  • Очистку Unicode-строк, загрязненных Windows-1251 кавычками и тому подобным говном
  • Корректный random-access к символам в строке и итерацию по ним, включая корректные truncate и excerpt

Грубо говоря, сделано все что было возможно сделать, за исключением нового движка регулярных выражений.

Огромное спасибо Тейсу и Манфреду из Fingertips за то что они дошлифовали мой патч до состояния пригодности, и Яну Беренсу за utf8_proc.

Помимо этого, в ближайшее время (до версии 1.2) Rails адаптирует UTF-8 как кодировку по умолчанию для ввода, вывода и операций с базой данных. Как следствие – если вы являетесь Японским Негодяем (с каким-нибудь JIS) или Бородатым Державным Троглодитом (с каким-нибудь KOI-8) я желаю вам сгнить в колодце успеха.

В дополнение к этому плагин unicode_hacks при следующем апдейте Rails может покинуть ваше приложение (Rails перенимает его функционал в полном обьеме).

Ура товарищи.