如何在Ruby中为排序添加UTF-8支持(包括字符,而不影响可移植性)?

如何在Ruby中为排序添加UTF-8支持(包括字符,而不影响可移植性)?,ruby,sorting,utf-8,portability,Ruby,Sorting,Utf 8,Portability,Ruby字符串函数不支持UTF-8 例如['l'、'm'].sort返回[“l”、“m”、“ł”],而不是[“l”、“ł”、“m”] 在Ruby中应该如何对UTF-8字符串进行排序 -接受的答案不支持ł字符(,被阻止),自2017-10-08起未合并等待 适用于安装了libicu的系统,而AFAIK并不是真正可移植的。好的解决方案是使用gem 我知道除了gem之外没有什么好的解决方案。@mudasobwa在我的测试中失败了要求使用“unicode”puts['l','322','m']。sort

Ruby字符串函数不支持UTF-8

例如
['l'、'm'].sort
返回
[“l”、“m”、“ł”]
,而不是
[“l”、“ł”、“m”]

在Ruby中应该如何对UTF-8字符串进行排序

-接受的答案不支持ł字符(,被阻止),自2017-10-08起未合并等待


适用于安装了libicu的系统,而AFAIK并不是真正可移植的。

好的解决方案是使用gem


我知道除了gem之外没有什么好的解决方案。@mudasobwa在我的测试中失败了
要求使用“unicode”puts['l','322','m']。sort{a,b{unicode::strcmp(a,b)}puts['l','m','m']。sort{a,b{unicode::strcmp_compat(a,b)}
(基于
['m','m','b','l','l]中的文档)。本地化(:pl)。sort.to.
也很短。此外,它还显式地设置了本地化。另外,:“无外部要求。”
require 'twitter_cldr'
collator = TwitterCldr::Collation::Collator.new
collator.sort(['m', 'ł', 'l'])
=> ["l", "ł", "m"]