С внесением в код 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 перенимает его функционал в полном обьеме).
Ура товарищи.
What others said
Arefiev
Искренне поздравляю Вас и все сообщество!
Van
Серьезная работа. Респект.
Anatol Pomozov
Искренний респект, Юлик, за то, что смог сделать true Unicode реалиями в Rails.
Ярослав Маркин
Of the world. Большая работа!
PS: Неужели в Basecamp будет нормальный юникод :)
Иван Сагалаев
И я поздравляю! Большое дело.
Антон Ковалёв
Ура!
Макс Лапшин
Супер!
Julik
В Basecamp в первую очередь, поскольку шевеление началось только после того как Самому Главному были отправлены появляющиеся в бейскампе вопросики
Ярослав Маркин
Что касается BC.. :)
Я им в суппорт несколько раз писал по поводу кривой сортировки, не то что вопросиков -- мне просто не ответили.
kukutz
теперь мы предоставляем более чем пристойную поддержку Unicode в Rails, примерно на уровне MediaWiki
Пишу из-под стола. Вы видели, КАК оно внутри в MediaWiki сделано?
Julik
Конечно видел. В связи с родовыми травмами PHP сделано оно криво но формальный функционал присутствует и работает (нормализация, casefolding, очистка ввода). На него я и ссылаюсь. Инструментально наше решение далеко не такое вонюче-волосатое.
Julik
Чтобы не быть голословным - то, на что вы ссылаетесь словом КАК сделано там только для убогих без mbstring, на которых в случае с PHP надо вообще забивать.
Зверёк Харьковским
А простым безрельсовым смертным это счастье нельзя ль как-нито поиметь?
Julik
почему нет? можно - когда обновятся все рельсы require 'activesupport'
Dmitry Sabanin
Огромный респект тебе. Я наблюдал чего тебе стоило это решение проблемы с юникодом в rails-core, и на мой взгляд это подвиг. Спасибо.
P.S. Хотел бы я иметь столько терпения и настойчивости ;-)
Влад Зараковский
Присоединяюсь к поздравлениям. Огромное спасибо!
Slach
поздравляю, это огромный шаг в перед
Julik
пока только в edge будет в 1.2
antono
Юлик, пеши ещё!
mblsha
Woohoo!
bio
Отлично! 10x!
Роман Токарев
Респект! Наконец-то.
Oleg
Расскажите чукче как из этого svn вставить в рельсы шобы работало?
rj_
Просто огромное человеческое спасибо! :)
Vitaliy
Огромное спасибо за то что так хорошо пишешь вообще, и за UTF-8 в частности!