分类: LINUX
2011-09-25 21:38:28
今天从windows拷贝了一个源文件到RHEL5里,RHEL5原来装的是中文版,但是编译源文件后在终端执行提示的中文都变成了乱码。
在网上搜了一下资料,原来是linux默认用UTF-8编码,Windows里面用GB2312编码,把GB2312编码的汉字拷贝到UTF-8编码里面查看自然是乱码了。
解决方案一:
可以单独把源文件转换编码格式
iconv -f gb2312 -t utf-8 source.txt> destination.txt
这里把windows拷贝进来的GB2313编码的source.txt转换为了用UTF-8编码的destination.txt
这样在RHEL5的终端里面重新用vi打开就可以看到原来source.txt里面乱码的中文,到了destination.txt 里面就都正常了
但是这样做有个麻烦,RHEL5还是UTF-8编码的,以后每从windows拷贝一个文件进来就要转换一次吗?那不是疯了
解决方案二:
改掉RHEL5默认使用的UTF-8编码
1. root用户登录(或su root);
2. vi /etc/sysconfig/i18n
3. 将内容改为
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
LC_CTYPE="zh_CN.GB18030"
4.
最后需要改变当前的环境变量,在终端中输入:export LANG="zh_CN.GB18030"
或者改完后relogin一下 再查看刚才那两个文件
GB2313编码的source.txt里面的中文显示正常了 用UTF-8编码的destination.txt的中文显示乱码
不过这个没关系 以后windows再拷过来的文件都是GB2312编码的 都能够正常显示了