记一次RedHat中文乱码,中文语言包安装实践

时间:2022-08-25 17:06:25

上网搜索Linux中文乱码问题,提示需要安装

fonts-chinese-3.02-12.el5.noarch.rpm

fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

中文语言包


yum安装方式提示找不到,怀疑是网络问题,改用从网站

http://rpmfind.net/linux/rpm2html

下载,使用rpm安装方式


直接安装提示:缺少chkfontpath依赖包


安装依赖chkfontpath提示:

[root@RedHat-BG home]# rpm -ivh chkfontpath-1.10.1-7mdv2011.0.x86_64.rpm 
warning: chkfontpath-1.10.1-7mdv2011.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 78d019f5: NOKEY
error: Failed dependencies:
xfs is needed by chkfontpath-1.10.1-7mdv2011.0.x86_64
[root@RedHat-BG home]# rpm -ivh xfs-1.1.2-1-mdv2012.0.x86_64.rpm 
warning: xfs-1.1.2-1-mdv2012.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 26752624: NOKEY
error: Failed dependencies:
rpm-helper is needed by xfs-1.1.2-1.x86_64
fslsfonts is needed by xfs-1.1.2-1.x86_64
fstobdf is needed by xfs-1.1.2-1.x86_64
showfont is needed by xfs-1.1.2-1.x86_64
x11-server-common >= 1.4.0.90-13mdv is needed by xfs-1.1.2-1.x86_64
libxfont >= 1.2.8-2mdv is needed by xfs-1.1.2-1.x86_64
libc.so.6(GLIBC_2.14)(64bit) is needed by xfs-1.1.2-1.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by xfs-1.1.2-1.x86_64

上网搜索找到这样一段文字:

安装
/bin/sh is needed by fonts-chinese-3.02-12.el5.noarch
/usr/sbin/chkfontpath is needed by fonts-chinese-3.02-12.el5.noarch
fontconfig is needed by fonts-chinese-3.02-12.el5.noarch
mkfontdir is needed by fonts-chinese-3.02-12.el5.noarch
ttmkfdir >= 3.0.6 is needed by fonts-chinese-3.02-12.el5.noarch
这几个提示你缺少依赖的包

这样再安装依赖包

[root@RedHat-BG home]# rpm -ivh rpm-helper-0.24.17-4.mga6.noarch.rpm 
warning: rpm-helper-0.24.17-4.mga6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
error: Failed dependencies:
perl-base >= 2:5.22.1 is needed by rpm-helper-0.24.17-4.mga6.noarch
systemd-units is needed by rpm-helper-0.24.17-4.mga6.noarch
util-linux >= 2.24-1 is needed by rpm-helper-0.24.17-4.mga6.noarch
You have mail in /var/spool/mail/root

这样就陷入没完没了找依赖,上网搜索其他文章:xfs is needed by

找到:

centos/redhat中文支持安装

一般而言,我们在安装linux时可能没有安装中文字体,导致我们在使用不管是linux桌面还是命令行终端时,中文显示乱码,也不能输入中文。下面,我将交大家怎么在linux中安装中文字体并配置显示。

软件包,http://pan.baidu.com/s/1qW2TE7i

可能要使用的软件

  1. chkfontpath-1.10.1-1.1.i386.rpm

    fonts-chinese-3.02-12.el5.noarch.rpm

    fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

    libFS-1.0.0-3.1.i386.rpm

    ttmkfdir-3.0.9-23.el5.i386.rpm

    xorg-x11-xfs-1.0.2-4.i386.rpm

    其中

    fonts-chinese-3.02-12.el5.noarch.rpm

    fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

    这两个是最主要的。

  2. 直接安装这两个软件

  3. rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm

    rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

  4. 但如果你之前没有安装xwindow,可能在安装第一个软件时就会出错,如下图。

  5. 记一次RedHat中文乱码,中文语言包安装实践
  6. 4

    我们再安装错误中出现的软件,又会出现报错。如图。

    记一次RedHat中文乱码,中文语言包安装实践
  7. 5

    这时,需要安装更多的依赖软件。我们依次安装

    rpm -ivh ./libFS-1.0.0-3.1.i386.rpm

    rpm -ivh ./ttmkfdir-3.0.9-23.el5.i386.rpm

    记一次RedHat中文乱码,中文语言包安装实践
    记一次RedHat中文乱码,中文语言包安装实践

  8. 6

    然后将下面两个软件一起安装,不然会出现循环依赖。

    rpm -ivh ./chkfontpath-1.10.1-1.1.i386.rpm  ./xorg-x11-xfs-1.0.2-4.i386.rpm 

    记一次RedHat中文乱码,中文语言包安装实践

  9. 7

    然后再依次安装第二步中的两个软件。

    rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm

    rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

  10. 8

    安装完成之后,重启系统。在登录时可以从最下面,选择桌面系统中显示中文。

    记一次RedHat中文乱码,中文语言包安装实践
    记一次RedHat中文乱码,中文语言包安装实践








  11. 9

    如果要在命令行终端中显示中文、在xshell中显示、输入中文,则需要修改/etc/sysconfig/i18n文件

    修改字体文档

    #vi /etc/sysconfig/i18n

    将LANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"修改原内容为LANG="zh_CN.GB18030"

    LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

    SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

    SYSFONT="lat0-sun16"

    记一次RedHat中文乱码,中文语言包安装实践


  12. 10

    效果如下

    记一次RedHat中文乱码,中文语言包安装实践
  13. 11

    其实还有第二种简单的方法

    yum -y groupinstall chinese-support 

    这样自动安装。



版本问题造成冲突

[root@RedHat-BG home]# rpm -ivh ./libFS-1.0.7-6.fc27.i686.rpm 
warning: ./libFS-1.0.7-6.fc27.i686.rpm: Header V3 RSA/SHA256 Signature, key ID f5282ee4: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.15) is needed by libFS-1.0.7-6.fc27.i686
[root@RedHat-BG home]# rpm -ivh glibc-2.17-5.mga3.x86_64.rpm \
> ^C
[root@RedHat-BG home]# rpm -ivh glibc-2.17-5.mga3.x86_64.rpm \
> ^C
[root@RedHat-BG home]# rpm -ivh glibc-2.17-5.mga3.x86_64.rpm
warning: glibc-2.17-5.mga3.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
error: Failed dependencies:
dash-static is needed by glibc-6:2.17-5.mga3.x86_64
/usr/bin/dash.static is needed by glibc-6:2.17-5.mga3.x86_64
prelink < 1:0.4.2-1.20091104.1 conflicts with glibc-6:2.17-5.mga3.x86_64
kernel < 2.6.33 conflicts with glibc-6:2.17-5.mga3.x86_64
[root@RedHat-BG home]# rpm -ivh glibc-2.14.1-11.2.mga2.x86_64.rpm 
warning: glibc-2.14.1-11.2.mga2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
error: Failed dependencies:
dash-static is needed by glibc-6:2.14.1-11.2.mga2.x86_64
/bin/dash.static is needed by glibc-6:2.14.1-11.2.mga2.x86_64
prelink < 1:0.4.2-1.20091104.1 conflicts with glibc-6:2.14.1-11.2.mga2.x86_64

[root@RedHat-BG home]# rpm -ivh dash-static-0.5.9-1.mga6.x86_64.rpm 
warning: dash-static-0.5.9-1.mga6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
Preparing...                ########################################### [100%]
   1:dash-static            ########################################### [100%]
[root@RedHat-BG home]# rpm -ivh glibc-2.14.1-11.2.mga2.x86_64.rpm 
warning: glibc-2.14.1-11.2.mga2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
error: Failed dependencies:
prelink < 1:0.4.2-1.20091104.1 conflicts with glibc-6:2.14.1-11.2.mga2.x86_64
[root@RedHat-BG home]# rpm -ivh ./libFS-1.0.7-6.fc27.i686.rpm
warning: ./libFS-1.0.7-6.fc27.i686.rpm: Header V3 RSA/SHA256 Signature, key ID f5282ee4: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.15) is needed by libFS-1.0.7-6.fc27.i686
[root@RedHat-BG home]# rpm -ivh glibc-2.16.90-3-mdv2012.0.x86_64.rpm 
warning: glibc-2.16.90-3-mdv2012.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 26752624: NOKEY
error: Failed dependencies:
prelink < 1:0.4.2-1.20091104.1mdv2010.1 conflicts with glibc-6:2.16.90-3.x86_64

[root@RedHat-BG home]# rpm -ivh libc6-2.16.90-3-mdv2012.0.x86_64.rpm 
warning: libc6-2.16.90-3-mdv2012.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 26752624: NOKEY
error: Failed dependencies:
glibc < 6:2.14.90-13 conflicts with libc6-6:2.16.90-3.x86_64
[root@RedHat-BG home]# rpm -ivh libFS-1.0.7-6.fc27.i686.rpm 
warning: libFS-1.0.7-6.fc27.i686.rpm: Header V3 RSA/SHA256 Signature, key ID f5282ee4: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.15) is needed by libFS-1.0.7-6.fc27.i686


冲突问题的搜索:


记一次RedHat中文乱码,中文语言包安装实践

I have a 64-bit Redhat Enterprise Linux server (version 6.3) that doesn't want to let me install the glibc.i686 module for 32-bit compatibility. When I try yum
install glibc.i686
 as root, it gives me a long string of errors like this:

Transaction Check Error:
file /lib/libc.so.6 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64
file /lib/libm.so.6 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64
file /lib/libpthread.so.0 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64










解答:

1 Answer

up vote 1 down vote accepted

There is no libc6 package in Red Hat Enterprise Linux. The package name for the same files is glibc. It appears that someone installed a package on your server from a different Linux distribution, and overrode the errors they would have received upon attempting to do so (which are just about the same as those you saw here).

This of course puts your RPM database in an inconsistent state relative to the actual software installed, and may cause compatibility and dependency problems such as that you ran into today. It becomes no longer possible to update packages from the supported repositories, for instance, and difficult to determine exactly what code is running on the system.

My best guess is that someone (who really doesn't know the right way to do this) attempted to upgrade glibc beyond the version provided by Red Hat, most likely to take advantage of a new feature which isn't present in the version of glibc shipped with EL6.

The right way, if you really need this late version of glibc, is to take Red Hat's source RPM, tweak the spec file and any patches to build the new version of glibc, and use the new binary RPMs of the new version. You then are responsible for maintaining it yourself, may lose vendor support, etc. so this is something you should only think about if business requirements absolutely demand it. (And since you lose your support anyway, you may as well switch to CentOS...)

share improve this answer
 
 
Thanks a lot, this was very helpful. I believe I know who is responsible for this state of affairs, and we will likely reinstall the server as a stock RHEL box. Much appreciated. –  Will Martin  Jan 24 '13 at 22:30

Centos安装glibc出问题,求解决办法?

[kun@localhost 下载]$ sudo rpm -ivh glibc-2.5-107.i686.rpm warning: glibc-2.5…
关注者
3
被浏览
3212

1 个回答

解决方法就是不装了
你的电脑上已经有glibc-common-2.5-107.i386



可知冲突和已安装的不同的软件包相互匹配版本有关

降低下载版本:

[root@RedHat-BG home]# rpm -ivh libFS-1.0.1-5.el6.x86_64.rpm 
warning: libFS-1.0.1-5.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 66534c2b: NOKEY
Preparing...                ########################################### [100%]
   1:libFS                  ########################################### [100%]
[root@RedHat-BG home]# rpm -ivh ttmkfdir-3.0.9-51.fc27.x86_64.rpm 
warning: ttmkfdir-3.0.9-51.fc27.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 9db62fb1: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by ttmkfdir-3.0.9-51.fc27.x86_64
libstdc++.so.6(CXXABI_1.3.8)(64bit) is needed by ttmkfdir-3.0.9-51.fc27.x86_64
libstdc++.so.6(CXXABI_1.3.9)(64bit) is needed by ttmkfdir-3.0.9-51.fc27.x86_64
libstdc++.so.6(GLIBCXX_3.4.20)(64bit) is needed by ttmkfdir-3.0.9-51.fc27.x86_64
libstdc++.so.6(GLIBCXX_3.4.21)(64bit) is needed by ttmkfdir-3.0.9-51.fc27.x86_64
[root@RedHat-BG home]# rpm -ivh ttmkfdir-3.0.9-2-mdv2011.0.x86_64.rpm 
warning: ttmkfdir-3.0.9-2-mdv2011.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 26752624: NOKEY
Preparing...                ########################################### [100%]
package ttmkfdir-3.0.9-32.1.el6.x86_64 (which is newer than ttmkfdir-3.0.9-2.x86_64) is already installed
file /usr/bin/ttmkfdir from install of ttmkfdir-3.0.9-2.x86_64 conflicts with file from package ttmkfdir-3.0.9-32.1.el6.x86_64
[root@RedHat-BG home]# rpm -ivh ./chkfontpath-1.10.1-7mdv2011.0.x86_64.rpm ./xorg-x11-xfs-1.0.5-7.el6.x86_64.rpm 
warning: ./chkfontpath-1.10.1-7mdv2011.0.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 78d019f5: NOKEY
warning: ./xorg-x11-xfs-1.0.5-7.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 66534c2b: NOKEY
Preparing...                ########################################### [100%]
   1:xorg-x11-xfs           ########################################### [ 50%]
   2:chkfontpath            ########################################### [100%]
[root@RedHat-BG home]# rpm -ivh fonts-chinese-3.02-12.el5.noarch.rpm 
warning: fonts-chinese-3.02-12.el5.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 37017186: NOKEY
Preparing...                ########################################### [100%]
   1:fonts-chinese          ########################################### [100%]
[root@RedHat-BG home]# rpm -ivh iso8859-2-75dpi-fonts-1.0-34.fc27.noarch.rpm 
warning: iso8859-2-75dpi-fonts-1.0-34.fc27.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f5282ee4: NOKEY
error: Failed dependencies:
iso8859-2-fonts-common = 1.0-34.fc27 is needed by iso8859-2-75dpi-fonts-1.0-34.fc27.noarch
[root@RedHat-BG home]# rpm -ivh iso8859-2-fonts-common-1.0-34.fc27.noarch.rpm 
warning: iso8859-2-fonts-common-1.0-34.fc27.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f5282ee4: NOKEY
Preparing...                ########################################### [100%]
   1:iso8859-2-fonts-common ########################################### [100%]
[root@RedHat-BG home]# rpm -ivh iso8859-2-75dpi-fonts-1.0-34.fc27.noarch.rpm 
warning: iso8859-2-75dpi-fonts-1.0-34.fc27.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f5282ee4: NOKEY
Preparing...                ########################################### [100%]
   1:iso8859-2-75dpi-fonts  ########################################### [100%]


各种依赖包安装成功。


 

Linux中文语言包的安装

 

linux安装中文语言包  

相关配置如下:

 yum install fonts-chinese.noarch
 yum install m17n-db-common-cjk
 yum install m17n-db-chinese

安装上面的几个语言包重启就正常了

 

yum groupinstall chinese-support

 

CentOS 5.0 安装中文语言包以及输入法

语言包的安装方法有三个。两个Yum方式的,一个rpm方式的。

其一:yum方式——完全的中文环境支持。这个方式的缺点是要从FTP上下载安装包,下载的包的数量虽然可以选择,但仍然是个不小的量。
以root身份登陆,运行命令:
yum groupinstall <language>-support 

在上面的命令中,<language> 是下列之一: assamese, bengali, chinese, gujarati, hindi, japanese, kannada, korean, malayalam, marathi, oriya, punjabi, sinhala, tamil, thai, 或 telegu。

若提示如下错误信息
Another app is currently holding the yum lock; waiting for it to exit...
The other application isyum-updatesd-he
    Memory : 15 M RSS ( 27 MB VSZ)
    Started: Sat Apr 10 13:34:25 2010 - 09:39 ago
    State : Sleeping, pid: 3008
则可以用 ps -U root 和kill命令来结束正在占用Yum的程序,然后再次执行上面的命令。

其二:还是yum方式,但是命令是:
yum install fonts-chinese fonts-ISO8859-2-75dpi
该方式的第一个包貌似也不小。

其三:rpm方式。在安装盘上已经有各种语言包了,我们只需要找到他们,并安装就可以了。中文的是
fonts-chinese-3.02-9.6.el5.noarch.rpm
fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm
我用的是6CD的安装盘,第一个包在4of6盘上,第二个在6of6盘上,
进入各文件对应目录,运行下面命令:
#rpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpm
#rpm -ivh fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm

中文输入法按如下安装:
rpm -ivh scim-1.4.4-41.el5.i386.rpm 
rpm -ivh scim-pinyin-0.5.91-16.el5.i386.rpm 
rpm -ivh scim-tables-0.5.6-7.i386.rpm 
rpm -ivh scim-tables-additional-0.5.6-7.i386.rpm
rpm -ivh scim-tables-chinese-0.5.6-7.i386.rpm
注:这些也在安装盘上,仍需要以root运行。具体版本可能有所变化。


Linux中文显示乱码?如何设置centos显示中文

    怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码。出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的。咗嚛本经验以centos为例,操作Linux怎么查看语言,设置修改语言

  

记一次RedHat中文乱码,中文语言包安装实践

Linux怎么查看设置系统语言包

  1. 查看当前系统语言

    登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言。如

    记一次RedHat中文乱码,中文语言包安装实践

  2. 查看安装的语言包

    查看是否有中文语言包可以在终端输入 locale命令,如有zh cn 表示已经安装了中文语言

    记一次RedHat中文乱码,中文语言包安装实践





  3. 如果没有中文语言呢

      可以通过网上下载安装中文语言包yum groupinstall chinese-support(不能联网的通过其他电脑下载,上传上去吧)

    记一次RedHat中文乱码,中文语言包安装实践

  4. 如何修改系统语言为中文

    1 临时更换语言

    如果只是临时更换linux系统的语言环境,可以通过输入设置 LANG=语言名称, 如中文是 

    Zn_CN.UTF-8(注意我这里本来就是中文的,我临时设置为英文

    记一次RedHat中文乱码,中文语言包安装实践



  5. 修改系统默认语言

    以上方法是通过修改设置系统默认的语言配置

    Vi  /etc/sysconfig/i18n (注意改好之后重启一下系统)

    记一次RedHat中文乱码,中文语言包安装实践



  6. 其他注意事项

    如果按照以上方法设置修改设置中文语言还是不行的话,注意您的链接终端选择的编码。

    如xshell为例,把终端的编码选择中文,或者UTF8即可






  7. 7

    设置好之后,再次查看之前的乱码文件就能看到显示为中文了

    记一次RedHat中文乱码,中文语言包安装实践





后记:




想尽办法:安装和切换中文环境后RedHat崩溃:虚拟机重置


仍然不好使,这样,在登录输入用户名root后发现下面有语言选择,设置回英文,应用新语言文件夹名,终于还原!!


重新编辑文件和设置LANG变量:


vi  /etc/sysconfig/i18n


LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"





修改LANG系统变量为:


LANG="zh_CN.UTF-8"------------------------------------------------------------这是个临时设置!!


[root@RedHat-BG ~]# echo $LANG
zh_CN.UTF-8


重启登录,输入用户名root后在最下方的语言选择上选择中文-UTF-8


拖入虚拟机一个中文文件,显式中文成功!!


按Ctrl+Space组合键,即可实现中英文切换,中文输入!!




将这个过程改为en_US.UTF-8,则恢复为英文界面(X_Windows)和编码!!





Red Hat Enterprise Linux 6.0怎么设置中文

推荐于2016-04-05 11:41:49 最佳答案
1、首先, 保证环境变量 LC_CTYPE 必须是zh_CN.UTF-8
locale可查看此变量的值。

2、桌面程序(GNOME, KDE)要安装 字体文件, 之后还要设置桌面的语言选项。KDE桌面, 则可以在"控制中心"设置。 字体文件可以从LINUX系统光盘里获得。
修改 /etc/sysconfig/i18n 这文件,
原文是LANG="en_US.UTF-8" 改为 LANG="zh_CN.UTF-8" 就可以了。

进入系统后输入:

1
LANG=zh_CN.utf-8

linux下配置中文语言包还是显示乱码解决办法

linux下中文显示乱码配置,如果配置了英文那么需要改成中文语言,但是有时候我们明明配置中文语言包,即配置了zh.cn_utf-8还是显示中文乱码。

输入命令 ll 时,显示乱码,或者编辑vi时显示乱码而且输入中文也显示乱码,如图

记一次RedHat中文乱码,中文语言包安装实践
记一次RedHat中文乱码,中文语言包安装实践

方法/步骤

  1. 查看linux下当前使用语言命令

    echo $LANG

    记一次RedHat中文乱码,中文语言包安装实践
  2. 查看linux下当前语言命令

    locale

    记一次RedHat中文乱码,中文语言包安装实践
  3. 修改系统语言包

    将zh_CN.UTF-8 改成 zh_CN.GB18030

    输入命令:

    如vi  /etc/sysconfig/i18n (注意改好之后必须重启一下系统才行)

    记一次RedHat中文乱码,中文语言包安装实践
  4. 重启前可以输入命令 预执行下 是否有效

    输入命令:

    LANG = "zh_CN.GB18030"(注意=号前后空格去掉)

    记一次RedHat中文乱码,中文语言包安装实践
  5. 看效果,ll后显示中文,vi编辑显示中文,也能输入中文











改变redhat的系统语言/字符集 简体中文语言包的安装


微信 分享:
改变redhat的系统语言/字符集 简体中文语言包的安装
2008-11-27 11:28 A.M.

改变redhat的系统语言/字符集

改变redhat的系统语言/字符集修改 /etc/sysconfig/i18n 文件,如 
LANG="en_US",xwindow会显示英文界面, 
LANG="zh_CN.GB18030",xwindow会显示中文界面。 
还有一种方法 
cp /etc/sysconfig/i18n $HOME/.i18n 
修改 $HOME/.i18n 文件,如 
LANG="en_US",xwindow会显示英文界面, 
LANG="zh_CN.GB18030",xwindow会显示中文界面。 
这样就可以改变个人的界面语言,而不影响别的用户 
(Debian不支持GB18030(RH的zysong字库是有版权的) 
现在好像没有Free的GBK和GB18030字库 
vi .bashrc 
export LANG=zh_CN.GB2312 
export LC_ALL=zh_CN.GB2312)

 

-----------

简体中文语言包的安装

于是我先用root用户从英文界面进入XWindows桌面,打开CDROM中的rhel5.1 dvd/Server/目录,双击安装以下文件,重启就可以正常显示汉字了:

fonts-chinese-2.15-2.noarch.rpm 
fonts-ISO8859-2-1.0-14.noarch.rpm                           
fonts-ISO8859-2-75dpi-1.0-14.noarch.rpm                     
fonts-ISO8859-2-100dpi-1.0-14.noarch.rpm


  还有,就是修改系统语言配置文件/etc/sysconfig/i18n为:

LANG="zh_CN.UTF-8"


vim设置字符集编辑不同编码文件:


设置vi/vim实现打开不同字符编码的文件

2011-09-23   zengxiaow...   文章来源  阅 812 
1>说明:
默认vi/vim会根据terminal的locale设置,使用相应的字符编码。
如:
# locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
# vim
查看默认的字符编码
:set fileencodings
fileencodings=utf-8,latin1 
                
                
                
2>实现
知道了上面这些,当我们在打开一个其它编码的文件时,只要先设置一下vi/vim的fileencodings值就可以了。
(1)动态设置实现
# vim
:set fileencodings gb2312,utf-8
多个字符编码以“,”隔开。
(2)配置文件静态设置实现
配置一下vi/vim的配置文件:
vi ~/.vimrc
set fileencodings=utf-8,gb2312 (gb2312中文编码,当windows含有中文文件在Linux出现乱码需设置该编码)































































VIM字符集编码设置

 
安装完中文语言包支持后,Ubuntu的默认locale是zh_CN.UTF-8(即简体中文语言环境,字符集内码UTF-8)。这与我们日常开发环境中Unix设定的环境有所区别,我们日常使用的环境一般为zh_CN.GBK或zh。我们的源代码文件的字符编码也都是GBK的编码,直接在Ubuntu下用默认设置的VIM打开后,中文的注释会显示乱码。如果你直接编辑这个文件并提交,那么其他在Unix下开发的同事Checkout这份源码后打开也将显示乱码(你新增的中文内容会是乱码)。

解决这个问题至少有两种方法:一种是为Ubuntu新增加一个zh_CN.GBK的locale的支持,内码使用GBK;另外一种就是通过设置VIM,在不变换Ubuntu所支持的locale(内码依旧是UTF-8)的情况下支持对GBK内码文件的读写。

第一种方法简单说一下,总共分四步走:
第一步:sudo vi /var/lib/locales/supported.d/local,该文件原始状态只有一行记录:zh_CN.UTF-8 UTF-8;为了增加zh_CN.GBK的locale,我们在这个文件尾添加一行:zh_CN.GBK GBK,保存退出。

第二步:执行:sudo locale-gen,生成zh_CN.GBK对应的locale
第三步:编辑:/etc/environment,在文件尾添加如下内容:
LANGUAGE="zh_CN:zh:en_US:en"
LANG=zh_CN.GBK
LC_CTYLE=zh_CN.GBK
LC_ALL="zh_CN.GBK"

第四步:重启Ubuntu系统。重启后用VIM再打开以前GBK编码的源代码文件,就不再会有乱码了,而且默认情况下编辑文件采用的依然是GBK编码。不会影响他人在其他平台上读写文件。

第二种方法是本文重点要谈的内容。即在zh_CN.UTF-8的环境下保证正确读写GBK编码的文件。问题主要集中在:如何读出并正确显示已有的特定字符编码的文件和如何按照特定字符编码写新文件。

这里有两个数据文件:data1和data2,内容都是“祝祖国六十年生日快乐”,但是data1采用UTF-8编码,而data2采用GBK编码,可以用od -x查看文件实际存储数据是不同的。
od -x data1
0000000 a5e7 e79d 96a5 9be5 e5bd ad85 8de5 e581
0000020 b4b9 94e7 e69f a597 bfe5 e4ab 90b9 000a
0000037

od -x data2
0000000 a3d7 e6d7 fab9 f9c1 aeca eac4 fac9 d5c8
0000020 ecbf d6c0 000a
0000025

在终端UTF-8编码,LC_ALL=zh_CN.UTF-8,VIM默认配置的前提下,尝试用VIM分别打开data1和data2,发现data1正常显示,data2显示乱码;为什么呢?这里VIM当打开一个已存在的文件时会有一系列的处理过程:

用VIM打开一个已存在的文件时,VIM首先要查看fileencodings(或fencs)这个option。fileencodings是一 系列字符编码格式的列表,例如:set fileencodings=GBK,UTF-8,gb18030,ucs-bom,cp936。这个option仅在打开一个已存在的文件时起作用。如 果你没有在.vimrc中显式set这个option,那fileencodings的默认值是'ucs-bom,UTF- 8,default,latin1',其中default的值是用户环境的默认编码格式。

当你打开一个已存在的文件时,VIM会用fileencodings值列表中的编码格式逐一去探测该文件的编码方式,直到两者匹配一致。探测成功 后,VIM会用匹配到的编码格式去设置此文件session的fileencoding选项值。fileencoding选项指示该session的 VIM BUFFER里的数据写入文件或从文件读出时文件中的数据的编码格式。同样该session中VIM BUFFER中数据的编码格式则由另外一个选项指示,那就是encoding option。这里有多个"encoding-like"字样的options,极易混淆。但实际上真正对VIM文件操作时数据显示和保存起作用的只有两 个选项:fileencoding和encoding。而fileencodings只是在打开已有文件时用来探测并设置fileencoding字段的 一个外围option。VIM的编码转换也是围绕fileencoding和encoding这两个options展开的。无论读写文件,当某个VIM session中fileencoding和encoding的值不一致时,VIM就会自动做编码转换。例如:当读取一个文件时,session的 fileencoding为UTF-8,而encoding为GBK时,VIM将文件中的数据读出来后会自动做一个UTF-8到GBK的转换,并将转换后 的数据存储在VIM针对该session的BUFFER里;同样当创建一个新文件时,如果该session的vim BUFFER中数据的编码格式(encoding指示)和fileencoding指示的文件编码格式不一致时,save file时,VIM会自动将BUFFER中的数据按照fileencoding指示的编码格式进行一次转换后再存入新文件中。

每个option都有三种状态:显式设置、空(encoding除外)和默认值。其中显式设置是指在.vimrc或在session中利用set指 令对选项进行赋值设置;空:比较特殊,表示该选项的值为empty;默认值则是未通过set在.vimrc或在session对选项进行赋值的状态。

fileencodings为空时,即在.vimrc中set fileencodings="";VIM将无法进行文件编码探测,将直接根据fileenoding和encoding的值来确定文件编码和 BUFFER编码以及是否需要自动做编码转换;当fileencodings不为空,但探测文件编码均告失败时,VIM会将该session的 fileencoding置为空,之后将根据encoding的值来设置文件编码和VIM BUFFER编码。

fileencoding的默认值就是空(""),打开已有文件时通过fileencodings来设置其值,新建文件时如果fileencoding为默认值或空,那么encoding将决定一切。其显式设置的值只有在新建文件的session中才会其作用。

encoding是核心,是VIM session中BUFFER数据的编码,也可以理解为VIM核心的内码;VIM会根据它与fileencoding、termencoding(term的编码格式)的不同由VIM做自动转码。encoding默认值为$LANG。

下面用一些例子来说明一下VIM的行为模式,测试环境Ubuntu 9.04, LANG=zh_CN.UTF-8, data1和data2如上所述。
(1) 三个Option均采用默认值,没有在.vimrc下显式设置
此 时在vim session未建立之前,fileencodings的默认值为“ucs-bom,UTF- 8,default,latin1”,fileencoding为空,encoding=UTF-8($LANG).打开data1,VIM通过 fileencodings做探测,顺利匹配到UTF-8的编码格式,将fileencoding设置为UTF-8,此时encoding也为UTF- 8,两者一致,VIM不做编码转换,屏幕正确显示“祝祖国六十年生日快乐”。打开data2,VIM通过fileencodings做探测,未能匹配到 GBK的编码,将fileencoding置为空,encoding发挥作用,VIM不做任何编码转换,将GBK编码的数据以UTF-8格式显示,屏幕显 示乱码。

(2) fileencodings显式被设置为"UTF-8,GBK",其他option采用默认值
此时在vim session未建立之前,fileencodings的值为“UTF-8,GBK”,fileencoding为空,encoding=UTF- 8($LANG).打开data1,VIM通过fileencodings做探测,顺利匹配到UTF-8的编码格式,将fileencoding设置为 UTF-8,此时encoding也为UTF-8,两者一致,VIM不做编码转换,屏幕正确显示“祝祖国六十年生日快乐”。打开data2,VIM通过 fileencodings做探测,顺利匹配到GBK的编码,将fileencoding置为GBK,此时encoding为UTF-8,两者不一 致,VIM做自动编码转换,将GBK编码的数据转换为UTF-8格式后放入BUFFER并显示,屏幕正确显示“祝祖国六十年生日快乐”,VIM在状态条提 示“已转换”。

(3) fileencoding显式设置为"GBK",encoding显式设置为“UTF-8”或采用默认值
新建一个文件data3, 输入:“祝祖国六十年生日快乐”,保存,此时fileencoding和encoding值不一致,VIM做自动编码转换,将BUFFER中的UTF-8 编码的数据转换为GBK编码后存储到文件中,VIM状态栏提示“已转换”。退出VIM。od -x data3,输出的是GBK编码。

转载自:

http://bigwhite.blogbus.com/logs/47259473.html

vim字符编码设置

vim 编码方式的设置
和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。 
Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下: 
* encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码). 
* fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。 
* fileencodings: Vim自动探测fileencoding的顺序列表, 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。 
* termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。如果vim所在的term与vim编码相同,则无需设置。如其不然,你可以用vim的termencoding选项将自动转换成term的编码.这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。 
好了,解释完了这一堆容易让新手犯糊涂的参数,我们来看看 Vim 的多字符编码方式支持是如何工作的。 
1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。 
2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。 
3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll(注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。 
4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示cp936,也就是 GBK 的代码页)。 

对于fedora来说,vim的设置一般放在/etc/vimrc文件中,不过,建议不要修改它。可以修改~/.vimrc文件(默认不存在,可以自己新建一个),写入所希望的设置。

我的.vimrc文件如下:

: set  encoding=utf-8
: set  fileencodings=ucs-bom,utf-8,cp936
: set  fileencoding=gb2312
: set  termencoding=utf-8

其中,fileencoding配置可以设置utf-8,但是我的mp3好像不支持utf-8编码,所以干脆,我就设置为gb2312了。现在搞定了,不管是vi中还是mp3上都可以显示无乱码的.txt文件了。

参考:http://blog.chinaunix.net/u2/80678/showart_2043323.html

设置Ubuntu系统和Vim字符集为utf8

Ubuntu编码设置

首先我们将ubuntu系统设置为utf8的字符集:

假设我们安装中文包:

1、安装中文语言包

Shell>apt-get install language-pack-zh

2、用vim配置语言环境变量

Shell>vim /etc/environment

Shell>vim /etc/default/locale

 

在下面添加如下两行

LANG="zh_CN.UTF-8"

LANGUAGE="zh_CN:zh:en_US:en"

如果你想用英文环境了,改成这两行就OK

LANG="en_US.UTF-8"

LANGUAGE="en_US:en"

 

3、重启Ubuntu Server

reboot

4、可以用locale查看一下环境变量...

locale

 

Vim编码设置

Shell>vim  /etc/vim/vimrc  在打开的文件最下面加上以下两段字符串

let &termencoding=&encoding

set fileencodings=utf-8,gb18030,gbk,gb2312,big5