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

3 投票
2 回答
2935 浏览
提问于 2025-04-15 11:23

在SQLite中,有没有简单的方法来对包含Unicode数据的行进行排序呢?

2 个回答

2

有一个叫做 ICU 的库,它可以帮你正确地进行 Unicode 排序;在另一个问题中有个很好的描述:

如何在 sqlite3 中按指定的地区进行文本排序?

5

SQLite有一个“自带排序器”的政策。想了解更多,可以查看常见问题解答中的相关内容。SQLite选择不默认包含任何支持Unicode的排序算法,这样可以让SQLite库保持轻便,方便静态链接。

不过,你可以创建一个排序器,按照你想要的方式进行排序,然后告诉SQLite使用这个排序器。正如其他人提到的,源代码中有一些排序器是通过ICU来实现的。不过,你也可以使用自己的排序器,这样做是有道理的,特别是当你使用像GLib这样的库时,它本身就支持Unicode。

撰写回答