2010-03-02 31 views
5

有没有人有任何代码字母的Unicode和阿拉伯文和日文文本?如果代码是红宝石,那会很棒。Alphabetize在Unicode中的阿拉伯文和日文文本?

+2

我没有看到具体做什么与iPhone。 – 2010-03-02 02:13:36

+0

阿拉伯文和日文字符是阿拉伯文,日文字母的一部分。我认为有些人可以把你的问题当作侮辱。 – johannes 2010-03-02 15:09:31

+1

@johannes:我不认为“alphabetize”意思是“转换为英文字母”,而是“按照适当的顺序排序”。 – 2010-03-02 22:13:07

回答

4

Unicode代码点未按字母顺序列出(例如,Z < a),但它们尝试按照该顺序大致设置。有一个规范的unicode顺序,由Unicode Collation Algorithm定义,它们也是语言特定的顺序(法语顺序与德语或捷克顺序不尽相同,即使使用相同的字母表)也可以在区域设置信息中指定。我认为ICU library包含您正在寻找的语言特定算法。

0

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

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

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

+1

这会帮助解决这个问题吗?如果我们对普通的拉丁字符进行了这样的处理,那么它将意味着字母会首先分为大写或小写,这在某些情况下是没有意义的。 – 2010-03-02 22:14:49

+0

对,如果这也适用于阿拉伯语和日语,我想OP将不得不说明这一点。 – 2010-03-02 22:51:24

0

问一个明显的问题,你不喜欢mylist.sort

+0

mylist.sort是否可以使用Unicode并知道阿拉伯文或日文字母的字母顺序? – 2010-03-03 06:08:03

+0

...为什么你不试试看? – 2010-03-03 06:42:22

0

根据您的需要words.sort在红宝石将罚款日语。这些字符在Unicode中的排列顺序是相当不错的。虽然不能担保阿拉伯文,但我的猜测是,这也可以。

0

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