数据库如何对汉字进行排序?

时间:2011-09-26 11:07:24

标签: database postgresql cjk

我目前正在编写一个Web应用程序,需要对一组中文字符进行一些排序,我想知道中文字符是否按数据库排序,如果是这样,它是如何排序的?

作为参考,我将使用PostgreSQL。

2 个答案:

答案 0 :(得分:1)

PostgreSQL使用操作系统区域设置对文本进行排序。这与sort等操作系统工具提供的行为完全相同。因此,在初始化数据库系统时,请将您的语言环境设置为有用的内容,例如zh_HK.utf8

如果您不喜欢这种结果,则必须提供自定义解决方案。

答案 1 :(得分:0)

对它们进行排序的最简单和最常用的方法就像二进制数据一样,可以是Unicode代码点,也可以更简单地作为原始二进制数据(对于ASCII数据很有效)。不幸的是,这并没有产生非常有意义的排序顺序。它确实将事物分组在一起,所以像前缀查询这样的事情应该有效。

对于有意义的排序顺序,没有好的算法解决方案。您需要使用查找表(例如,请参阅this thread关于将中文映射到拼音,然后您可以对其进行排序)。

相关问题