一直以来, Linux环境下中文排序总以一种中国人无法理解的顺序排列,不信你可以打开Nautilus或者其它程序看看。
这其实是因为中文本地化数据并没有包含拼音排序的信息。
现在通过安装一种额外的中文本地化数据zh_CN@pinyin就可以让你在UTF-8和GB18030字符集下都可以正确的排序中文。
解决办法:安装locale-pinyin
下载地址:https://gro.clinux.org/frs/download.php/1962/locale-pinyin-0.1.tar.gz
我放了一份到附件中,另外还有一个自己用checkinstall打包的deb
locale-pinyin 0.1自述文件
介绍
==
按拼音排序的中文locale。
在*nix中为了能够正确的排序电脑中的中文,你必须有能够正确对中文进行排序
的locale数据。而glibc包含的locale数据一直没能对中文按照拼音或者笔画排
序。本软件则是为你在电脑中增加一种按照拼音排序的中文locale。
安装
==
系统需求:
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不能正确生
效。
测试系统
====
Fedora Core 6, glibc 2.5, perl 5.8.8
Debian Sarge, glibc 2.3.2, perl 5.8.4
Debian Etch, glibc 2.3.6, perl 5.8.8
联系方式
====
如果你发现有什么问题或有什么建议,请联系:
hellwolf DOT misty gmail DOT com
__________________________________________________
以上看看就行,不用管它。
下载我打包的deb并安装
编辑/etc/environment
代码: |
sudo gedit /etc/environment |
则将下面的代码添加到文末尾(UTF-8.zh_CN环境适用)
代码: |
LC_COLLATE=zh_CN@pinyin.utf8 |
重新登录就行了。
之后无论Terminal、Nautilus还是Amarok(Sqlite后端),甚至是Gnome面板(没有自定义次序的话)里的中文都是拼音排序了!