Ruby字符串函数不支持UTF-8。
例如['l', 'ł', 'm'].sort
返回["l", "m", "ł"]
而不是["l", "ł", "m"]
。
如何在Ruby中对UTF-8字符串进行排序?
Sorting UTF-8 strings in RoR - 已接受的答案不支持Ê字符(issue open since 2015,被PR waiting opened in 2014阻止),等待2017-10-08未加入。
ffi-icu answer适用于安装了libicu的系统,AFAIK不是真正可移植的。
答案 0 :(得分:1)
好的解决方案是使用gem https://github.com/twitter/twitter-cldr-rb
require 'twitter_cldr'
collator = TwitterCldr::Collation::Collator.new
collator.sort(['m', 'ł', 'l'])
=> ["l", "ł", "m"]