在Ruby中对非拉丁字符串进行排序

时间:2015-10-25 15:42:54

标签: ruby sorting dictionary alphabetical alphabetical-sort

好的,所以我需要的是相当不言自明的。

使用相同的方式.sort,为了按字母顺序/按字典顺序排序基于拉丁语的字符串数组,我正在寻找一种方法来排序非拉丁语的UTF-8字符串。

具体地:

  • 西里尔
  • 中国
  • 日本
  • 亚美尼亚
  • 格鲁吉亚
  • 希伯来语
  • 阿拉伯

通过“排序”,我的意思与通常在字典中找到它们的方式相同。 (我知道对于中国人/日本人来说这可能会非常棘手,所以让我们先坚持其余部分)

有什么想法吗?

P.S。我对音译不感兴趣(这就是我目前正在做的事情),因为结果与“正确”相差甚远 - 按词汇表来说......

注意:它与RoR无关。只是纯粹的Ruby。

1 个答案:

答案 0 :(得分:5)

正如您所说,Unicode collation是一件棘手的事情 - 您几乎肯定不想自己做这件事。

Unicode处理库的爸爸是icu。 icu有很多ruby绑定,其中许多看起来相当陈旧,但ffi-icu似乎相当活跃。

Twitter还维护twitter-cldr-rb声称拥有Unicode整理算法的纯ruby完整实现。