pg中对中文字段的排序

PostgreSQL 中对字段排序时中文并不会按照拼音排序,在不同的字符集中,汉字的编码可能不一样,比如 UTF8 和 GBK,其中 GBK 大致是按拼音的顺序进行编码的,而 UTF8 则不是。所以如果你的数据库使用了 UTF8 编码,对中文字段进行排序时,得到的并不是按拼音排序的结果。 PostgreSQL 中,中文按拼音排序的编码包括 GB18030, EUC_CN, GBK, BIG5, EUC_TW 等。为了得到拼音排序,可以使用编码转换后的值来排序,如convert_to(name,'GBK')

对于多音字、生僻字排序结果不太准确:如根据汉字内码扩展规范(GBK) 在 GBK 编码 10 进制编码为 58791,编码为 55260,