xujidong0 2012-07-18
其实乱码这个问题是由系统集成的字符集引起的,由于不能正确的使用相对应字符的字符集,因此OS不能识别出文字导致了乱码,要解决好乱码的问题,我们需要从系统,终端,软件这三方面做好配置。下面统一以utf-8编码为例,说明解决编码问题。
一、系统设置
首先,要确定系统安装了相应的语言包,可以用locale-a查看系统支持的语言。
如果系统支持,你可以根据实际的情况先择以下方式来进行设置。
1.机器级配置
修改/etc/sysconfig/i18n,其内容如下
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
2.用户级配置
修改~/.i18n,其内容同上
3.会话级配置
在secureCRT的“选项”->“会话选项”->“连接”->“登录脚本”中添加:
期望:发送:exportLANG="zh_CN.UTF-8"
期望:发送:LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
二、终端设置
在secureCRT的“选项”->“会话选项”->“终端”->“外观”中选择字符编码为utf-8。
三、软件设置
要打开一个文档来阅读是通过软件来完成的,如果只是系统和终端的编码配置正确而字处理软件没有正确的编码配置的话,仍然会出现乱码的情况,我们经常会用到的字处理软件是vim,这里我们介绍vim的字符编码的设置。
Vim有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding(vim的配置文件是~/.vimrc),它们的意义如下:
encoding:Vim内部使用的字符编码方式,包括Vim的buffer(缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在.vimrc中改变它的值,事实上你也可以在进入Vim后键入类似":setencoding=xxx"的命令来改变字符编码。你可以用另外一种编码来编辑和保存文件,如你的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的编码.
下面是~/.vimrc的配置:
setfenc=utf-8
setencoding=utf-8
setfileencodings=utf-8,gb18030,utf-16,big5
settermencoding=gbk
" \ \ / /_ | / | _ \ / | / / _ | \ | | | / |. " \ \ / / | || |/| | |) | | | | | | | | | | | | | | _.