一直以来, Linux环境下中文排序总以一种中国人无法理解的顺序排列,不信你可以在RedHat5x或者CentOS5x下用srot 排序看看。

这其实是因为中文本地化数据并没有包含拼音排序的信息。

现在通过安装一种额外的中文本地化数据zh_CN@pinyin就可以让你在UTF-8和GB18030字符集下都可以正确的排序中文。

RedHat6.0和CentOS6.0以上版本不会有此问题。



安装:

系统需求:

1、系统需要有符合X/Open标准的localedef工具

2、5.8.1以上的perl

安装:

#make

#make install


配置

==

为了生效,你必须正确配置locale环境变量。

推荐仅设置LC_COLLATE为本locale,比如:

LANG=zh_CN.UTF-8

LC_COLLATE=zh_CN@pinyin.utf8

注意:不要同时设置LC_ALL和LC_COLLATE,这样可能会导致本locale不能正确生

效。


编辑/etc/environment


则将下面的代码添加到文末尾(UTF-8.zh_CN环境适用)

LC_COLLATE=zh_CN@pinyin.utf8

重新登录新session。


重新安装postgreSQL

字符集选择zh_CN@pinyin.utf8



下载地址:

https://gro.clinux.org/frs/download.php/1962/locale-pinyin-0.1.tar.gz

http://forum.ubuntu.org.cn/download/file.php?id=12053