1,shell显示问题。
首先设置当前shell的LANG变量为en_US.UTF-8并确认。
[root@caotest-1 ~]# LANG=en_US.UTF-8
[root@caotest-1 ~]# echo $LANG
en_US.UTF-8
然后在支持中文字符的系统(如winxp)下新建一个文件“文本文档.txt”,并传输到当前shell。
然后ls看一下。
[root@caotest-1 ~]# ls *.txt
?谋??牡?.txt
OK,现在的输出结果已经是乱码了,但接下来用一个命令就可以让bash shell正常显示中文:
[root@caotest-1 ~]# LANG=zh_CN.GB18030
[root@caotest-1 ~]# ls *.txt
文本文档.txt
这是怎么回事哪?我们知道bash shell是redhat/centos linux的默认人机交互界面,但它也只是一个应用程序。在它的设定中,使用什么字符编码就是去读取“LANG”变量。当字符编码是“en_US.UTF-8”它无法正常显示中文文件名,但当我们将编码设置成linux系统中已有可用的另一个支持中文的字符集“zh_CN.GB18030”,它就可以正常显示中文了。
如果要让你的shell长期支持中文,可以每次登录shell都手动指定LANG变量为“zh_CN.GB18030”,也可以将这个变量设定加到“~/.bash_profile ”或“/etc/profile”。
但这样都只是给LANG变量“重命名”,它的初次定义在哪里哪?就在这个文件:
[root@caotest-2 ~]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
“/etc/sysconfig/i18n”这个文件即定义了当前使用什么字符集,又定义了诸如系统字体等信息,我们可以通过修改它来修改系统默认的字符集。
阅读(759) | 评论(0) | 转发(0) |