当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > RedHat 6.2 中文显示与输入的设置

Unix/Linux
Linux远程启动
寻找Linux下的网络邻居
Linux 每次启动时钟日期就多了 8 小时
实例讲解 LILO 的配置和使用
深入解剖 LILO
在没有CD-ROM 驱动器的笔记本电脑上安装Linux
Linux 运行级init详解
把 RH 7.0 内核升级到 2.4
Linux 99问(四)
Linux内核重编译常见故障及其解决方法
Linux中文件的压缩与解压缩
Linux下如何实现IP与Mac地址的捆绑?
如何用 Linux 拨号上网
试试一张软盘可装下Linux(嵌入式Linux)
Linux 99问(三)
Linux 99问(二)
Linux 99问(一)
linux核心代码分析(系统初始化start_kernel函数)
让linux支持你的DMA66硬盘
用RPM校验文件

Unix/Linux 中的 RedHat 6.2 中文显示与输入的设置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 32 ::
收藏到网摘: n/a

  ([email protected]) 2000/4 

本文将介绍在 RedHat 6.2 中,设置中文显示和输入的方法。感谢网友 Rigel、于明俭老师等给予的帮助。特别感谢于
老师开发了 Chinput 中文输入服务器软件,使在 Linux 下可以方便的使用中文。 

存在于 RedHat 6.2 中的 XFree86-3.3.6 视窗系统字体解释器freetype对中文TrueType字体的解释效果不太好,但在
XFree86-4.0 中新增的 xtt 组件会得到更好的视觉效果。 

由于我对 Linux 了解尚浅,错误难免,请大家能及时指出。并希望大家能提供更多的中文化软件的方法与技巧。 

升级到 RedHat 6.2 

升级到新的版本一般是通过获得一张新版CD,重新安装时选择升级完成的。但我个人则是从网上下载到部分更新的软件包,
自行升级的。如果你也是使用这种方法,则有些事情需注意,否则,可以忽略本节。 

升级可按照:系统核心、基本C函数库、库连接工具、X视窗系统、X高级控件库、桌面系统的顺序进行。当需要编译软件时,
升级相关编译程序和库开发包。 

在 XFree86 的更新中,使用 xfs 的用户需要注意:当你升级 XFree86-xfs 
后,它并不使用新的配置文件替换旧的,而是将其保存为 .rpmnew 形式。所以应将 
/etc/X11/fs/config.rpmsnew 
改成 config,并重新使用 chkfontpath 
命令重新配置字体搜索路径,因为新的配置文件会有时会包含某此些重要的选项。若不使用 xfs 字体服务器,则直接修改
 /etc/X11/XF86config 文件,加上你所使用的字体描叙即可。 

Locale 的设置 

由于在 RedHat 的 Glibc 2.1.3 中未包含 zh_CN.GB2312,需从台湾的Linux 中文扩展项目的 
ftp 网站获取中文GB2312 场所的源码包。下载地址如下: 

ftp://cle.linux.org.tw/pub/CLE/SRPMS/SRPMS/ 
locale-zh-0.9.src.rpm <== 目前的版本,包含 GB 和 BIG5 

注:若无法连接台湾的站点,可到我的主页下载。我制作了一个locale数据包,包含CLE项目的gb2312, 
big5和TLC的gbk编码。 

下载后,以 root 身份,编译该源码包(请务必重新编译,旧的数据包将无法使用)。步聚如下: 

rpm -ivh locale-zh-0.9.src.rpm 

该命令将源码包安装在 /usr/src/redhat/ 目录下,进入 SPECS 子目录,输入 

rpm -ba zh-localedata.spec 

建立 RPM 包。如果无问题的话,生成的 RPM 包在 RPMS/i386 目录下,可以把它保存起来,可供以后使用。在SRPMS 下,
生成一个新的源码包,不需要可删除。安装 locale: 

rpm -Uvh locale-zh-0.9.i386.rpm 

安装完,设置使用该场所,以 bash 为例: 

export LC_ALL=zh_CN.GB2312 

使用 locale 命令可以看到所有的 LC_* 变量都换过来了,检查该 locale 是否有效。有两种方法,一是使用 glibc 的
setlocale(LC_ALL, "") 函数来检测,检测程序如下: 

testlocale.c 清单 
----------------- 


#include 
#include 


int main(void) 

char *current_locale; 

current_locale=setlocale(LC_ALL, ""); 
if(current_locale) 
printf("Current locale: %s\n", current_locale); 
else 
printf("Doesn't support.\n"); 
return 0; 


编译:gcc testlocale.c -o testlocale 
执行:若支持,则显示场所名 

另一种更简单的方法是呼唤一个命令,看是否 locale 起作用了,如 rpm -qi kernel 如果你看到显示结果的时间变成????y??m??d,那么 locale 已经生效了。 

通过了上面的任一种测试,可说明 glibc 已本地化了。 

另外,可以在 /usr/share/locale/locale.alias 文件中定义 locale 
的别名,该别名可以有助于记忆,如在该文件中加入一行为: 

china zh_CN.GB2312 

然后使用 export LC_ALL=china 则完成与上一种方法相同的功能,而且更直观。为了在以后登录后就使