Алфавитно-арабский и японский текст, который есть в 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
должно сработать.)