注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

态度决定高度

英语,沟通,rhca,管理

 
 
 

日志

 
 

RHEL5.4对中文排序问题  

2011-08-30 17:07:04|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

今天德哥发现rhel5.4上使用sort对中文进行拼音排序,而在rhel6中是正常的。现象如下:

[root@rhel5-2 ~]# locale

LANG=zh_CN.utf-8

LC_CTYPE=zh_CN.utf-8

LC_NUMERIC="zh_CN.utf-8"

LC_TIME="zh_CN.utf-8"

LC_COLLATE=zh_CN.utf-8

LC_MONETARY="zh_CN.utf-8"

LC_MESSAGES="zh_CN.utf-8"

LC_PAPER="zh_CN.utf-8"

LC_NAME="zh_CN.utf-8"

LC_ADDRESS="zh_CN.utf-8"

LC_TELEPHONE="zh_CN.utf-8"

LC_MEASUREMENT="zh_CN.utf-8"

LC_IDENTIFICATION="zh_CN.utf-8"

LC_ALL=

[root@rhel5-2 ~]# cat test

中国

日本

美国

上海

[root@rhel5-2 ~]# sort test

上海

中国

日本

美国

[root@rhel5-2 ~]# rpm -qa|grep glibc

glibc-common-2.5-42

glibc-devel-2.5-42

glibc-2.5-42

glibc-headers-2.5-42

 

这其实是因为中文本地化数据并没有包含拼音排序的信息。即glibc中的local数据不包含对中文按拼音和笔画的排序

官方上bug的提交如下:

http://sources.redhat.com/ml/glibc-bugs/2007-02/msg00068.html

http://sourceware.org/bugzilla/show_bug.cgi?id=4024

 

现在给出解决方案,如下:

 

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

 

介绍

==

按拼音排序的中文locale

在类Unix中为了能够正确的排序电脑中的中文,你必须有能够正确对中文进行排序

locale数据。而glibc包含的locale数据一直没能对中文按照拼音或者笔画排

序。本软件则是为你在电脑中增加一种按照拼音排序的中文locale

 

安装

==

系统需求:

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

25.8.1以上的perl

安装:

$make

#make install

 

配置

==

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

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

LANG=zh_CN.UTF-8

LC_COLLATE=zh_CN@pinyin.utf8

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

效。

 

再跟踪glibc,发现官方在比较新的版本中已经把local_pinyin合并进去了(glibc2.6以上),如下:

http://sourceware.org/cgi-bin/cvsweb.cgi/libc/localedata/locales/iso14651_t1_pinyin?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=glibc

 

升级glibc是一个比较大的工程,涉及也比较广,建议在用rhel5时先打上local_pinyin补丁,或者可以考虑使用rhel6

  评论这张
 
阅读(809)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018