有没有人有任何代码用于按字母顺序排列Unicode中的阿拉伯语和日语文本?如果代码是ruby,那就太好了。
答案 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
会起作用。)