Алфавитно-арабский и японский текст, который есть в Unicode?

У кого-нибудь есть какой-нибудь код для алфавитного арабского и японского текста в Unicode? Если бы код был в ruby, это было бы здорово.

5 ответов

Решение

Кодовые точки Unicode не перечислены в алфавитном порядке (например, Z Юникода, определяемый алгоритмом сортировки Юникода, и они также зависят от языка (французский порядок не совсем совпадает с немецким или чешским порядком, даже с тем же алфавитом), который может быть указан в информации о локали. Я думаю, что библиотека ICU содержит специфичные для языка алгоритмы, которые вы ищете.

Я не знаю Ruby, но в python есть функция ord(), которая переводит специальный символ Unicode в его кодовую точку Unicode. Например,

>>> a = u'ل'
>>> ord(a)
0: 1604
>>> b = u'ع'
>>> ord(b)
1: 1593

Ищите что-то подобное в Ruby. Я предполагаю, что арабские символы перечислены в юникоде в алфавитном порядке.

Чтобы задать очевидный вопрос, что вам не нравится в mylist.sort?

В зависимости от ваших потребностей words.sort в рубине будет хорошо для японцев. Порядок отображения символов в Юникоде находится в достаточно хорошем порядке сортировки. Хотя я не могу поручиться за арабский язык, но я думаю, что все в порядке.

mylist.sort должен работать из коробки в Ruby 1.9 (который имеет встроенную поддержку юникода). В Ruby 1.8, где поддержка Unicode не встроена, я думаю, вам придется использовать character-encodings gem расширяет класс String сравнениями строк в UTF-8. (А потом mylist.sort должно сработать.)

Другие вопросы по тегам