Ищем гем с нормализаторами (NFD, NFKD, NFC, NFKC) для jruby 1.8.2 (нативная реализация) - PullRequest
4 голосов
/ 15 августа 2011

Есть ли собственный гем (так что его можно использовать для jruby 1.8.2), в котором реализованы нормализаторы UTF8 (NFD, NFKD, NFC, NFKC)?

1 Ответ

2 голосов
/ 16 августа 2011

Ruby v1.8 действительно нестабилен в Unicode.Я считаю v1.9 минимальной версией Ruby для вменяемой обработки.Даже тогда драгоценный камень unicode_utils для v1.9.1 для лучшего абсолютно необходим.В нем есть такие вещи, как полное отображение случаев и функции нормализации.Вам действительно это нужно.

К сожалению, оно не включает в себя сортировку, , поэтому вы не можете алфавитные сортировки в Ruby так, как вы можете в Perl илиязыки с доступом к библиотекам ICU.Труднее всего разобраться в сопоставлении, поэтому неудивительно, что оно отсутствует.Но это важно, потому что оно лежит в основе почти всего, что мы когда-либо делаем с текстом.Это не просто сортировка;речь идет о простых сравнениях строк.Большинство людей не осознают этого.

Я говорю о поддержке Unicode в Ruby и о том, что вы можете сделать, чтобы немного облегчить свою жизнь, в моем третьем выступлении на OSCON пару недель назад.Признаюсь, я отказался от Ruby v1.8;это было слишком сложно.

Это не удар по Ruby, потому что то же самое можно сказать и о большинстве современных языков, которые не являются последними версиями.

  • Вы не будете довольны Ruby и Unicode, если вы не используете v1.9.
  • Если вы не используете Python v3 (и предпочтительно v3.2 или, вероятно, v3).3) с широкой сборкой, вы будете несчастливы в Python с Unicode.
  • Если вы не используете Java v1.7, вы будете недовольны Java с Unicode - и, возможно, даже тогда.: (
  • Если вы не используете Perl v5.14 или выше, вы, вероятно, будете несчастны в Perl с Unicode.

Ситуация с этими четырьмя, таким образом, совершенно не похожа наодин (ие) с PHP, Javascript и Go. С этими последними тремя языками не имеет значения какую версию вы используете, потому что

  • С первыми двумя вы будетевсегда недовольны их поддержкой Unicode. Это действительно ужасно, потому что люди, использующие их, почти никогда не могут переключиться на настоящий язык с реальной поддержкой Unicode. Ниша слишком специализирована.
  • В то время как с Go вы будетеникогда не разочаровывайтесь в поддержке Unicode - если только вы не спешите: модуль нормализации очень близок к тому, чтобы быть готовым к работе, а модуль сопоставления работает, но на самом деле он намного сложнее.

Можно ли использовать Ruby v1.9?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...