有没有办法使用Python在SQLite中正确排序unicode字符串?

时间:2009-05-04 08:05:25

标签: python sqlite unicode

是否有一种简单的方法可以在SQLite中使用unicode数据对行进行排序?

2 个答案:

答案 0 :(得分:5)

SQLite有一个BYOS(自带分拣机)政策。请参阅more details的常见问题解答。他们选择不包括(默认情况下)任何支持Unicode的排序算法,以保持SQLite库的轻松和易于静态链接。

但是,您可以create a collator,但是请您按顺序排序,然后告诉SQLite使用它。正如另一张海报所暗示的那样,源树中有一些使用ICU执行此操作的拼贴器。但是,您也可以使用自己的,如果您正在使用像GLib这样具有自己的Unicode感知功能的库,这是有意义的。

答案 1 :(得分:2)

有一个名为ICU的库可以为您进行正确的unicode排序;在另一个问题上有一个很好的描述:

How to sort text in sqlite3 with specified locale?