Chinaunix首页 | 论坛 | 博客
  • 博客访问: 645608
  • 博文数量: 245
  • 博客积分: 4732
  • 博客等级: 上校
  • 技术积分: 3102
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-02 14:31
文章分类

全部博文(245)

文章存档

2012年(1)

2011年(42)

2010年(132)

2009年(59)

2008年(11)

我的朋友

分类: LINUX

2010-10-30 20:58:54

 
 
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”这个文件即定义了当前使用什么字符集,又定义了诸如系统字体等信息,我们可以通过修改它来修改系统默认的字符集。
阅读(727) | 评论(0) | 转发(0) |
0

上一篇:经济半小时

下一篇:字符编码是什么?

给主人留下些什么吧!~~