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

Unix/Linux
没有发现 PHP 的扩展设置mbstring
apache it works
information_schema
linux apache启动命令
linux 如何查看硬盘大小
Blocks是什么意思
fdisk对硬盘分区
linux查看目录大小及硬盘大小
linux目录结构
修改linux用户密码
如何安装linux系统
fstab 格式
安装完samba如何从linux访问WINDOWS共享文件夹
/root
linux top命令参数
dd 参数使用
linux分区详解
iptables中文手册
IPTABLES配置实例
mysql如何建立数据库

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 33 ::
收藏到网摘: 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 则完成与上一种方法相同的功能,而且更直观。为了在以后登录后就使