使用Unicode格式化阿拉伯语和日语文本?

时间:2010-03-02 01:12:34

标签: ruby sorting unicode

有没有人有任何代码用于按字母顺序排列Unicode中的阿拉伯语和日语文本?如果代码是ruby,那就太好了。

5 个答案:

答案 0 :(得分:4)

Unicode代码点未按字母顺序列出(例如,Z< a),但无论如何它们都试图大致按此顺序排列。有一个规范的unicode命令,由Unicode Collation Algorithm定义,它们也是特定于语言的排序(法语顺序与德语或捷克语顺序不同,即使是相同的字母顺序),可以在语言环境中指定信息。我认为ICU library包含您正在寻找的语言特定算法。

答案 1 :(得分:0)

我不知道Ruby,但是python有一个函数ord(),它将unicode特殊字符转换为它的unicode代码点。例如,

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

在Ruby中寻找类似的东西。我假设阿拉伯符号按字母顺序列在unicode中。

答案 2 :(得分:0)

要问一个显而易见的问题,你对mylist.sort不喜欢什么?

答案 3 :(得分:0)

根据您的需要,红宝石中的words.sort对日本人来说没问题。字符在Unicode中出现的顺序是一个相当好的排序顺序。虽然不能担保阿拉伯语,但我的猜测是它也没关系。

答案 4 :(得分:0)

mylist.sort应该在Ruby 1.9中开箱即用(它具有内置的unicode支持)。在Ruby 1.8中,没有内置Unicode支持,我认为你必须使用character-encodings gem扩展String类和UTF-8字符串比较。 (然后mylist.sort会起作用。)