如何在 Common Lisp 中按字母顺序对 unicode 字符串进行排序?

How to sort unicode strings alphabetically in Common Lisp?

这个:

(sort '("Aaa" "Ééé" "Zzz") #'string-lessp)
;; ("Aaa" "Zzz" "Ééé")

不太满意,因为“Ééé”应该在"Zzz"之前。

我们如何按字母顺序对 unicode 字符串进行排序?

我目前的方法是创建字符串的副本,将重音字母替换为对应的字母(使用 cl-slug:asciify,调用 ppcre:regexp-replace-all),对其进行排序并显示原字符串返回。

谢谢。

如果您使用 SBCL,您已经集成了对 unicode 的支持。

String operations

尝试使用 unicode< 而不是 string-lessp 进行排序。