代码之家  ›  专栏  ›  技术社区  ›  James Testa

按Unicode字母顺序排列阿拉伯语和日语文本?

  •  5
  • James Testa  · 技术社区  · 15 年前

    有人有没有用Unicode字母排列阿拉伯语和日语文本的代码?如果代码是用Ruby编写的,那就太好了。

    5 回复  |  直到 13 年前
        1
  •  4
  •   Frédéric Grosshans    15 年前

    Unicode代码点没有按字母顺序列出(例如Z<A),但它们试图大致按该顺序列出。有一个规范的Unicode顺序,由 Unicode Collation Algorithm 它们也是语言特定的顺序(法语顺序与德语或捷克顺序不完全相同,即使字母相同),可以在语言环境信息中指定。我认为 ICU library 包含您要查找的特定于语言的算法。

        2
  •  0
  •   Rob Lourens    15 年前

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

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

    在红宝石中寻找类似的东西。我假设阿拉伯符号以Unicode字母顺序列出。

        3
  •  0
  •   glenn mcdonald    15 年前

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

        4
  •  0
  •   Kimtaro    15 年前

    取决于你的需要 words.sort 红宝石色的对日本人来说很好。字符以Unicode显示的顺序是相当好的排序顺序。虽然不能保证阿拉伯语,但我想也可以。

        5
  •  0
  •   Ken Bloom    15 年前

    mylist.sort 在Ruby1.9中应该是现成的(它有内置的Unicode支持)。在Ruby1.8中,没有内置Unicode支持,我认为您必须使用 character-encodings gem使用utf-8字符串比较扩展了string类。(然后) MyList.排序 会起作用的。

    推荐文章