初学Linux,所以还是在用中文界面,经常碰见中文乱码的情况。下面是学习中碰见的常见几种乱码情况,经过度娘的帮忙,通过实验整理得出解决办法。
1、ssh或者telnet远程登录时
查看环境变量LANG,改成中文编码utf8,我试了一下en_US.utf8和zh_CN.utf8都可以,不知道这两种编码在哪有区别,并且设置SSH或者Telnet客户端工具编码,要保持一致
如常见的工具SecureCRT中设置:会话选项--外观--字符编码--utf8
2、图形化窗口中的终端乱码
就是我们用图形化界面进入linux,然后点击进入“终端”
这种最好解决,修改环境变量LANG即可,命令LANG=zh_CN.utf8,en_US.utf8也可以,只不过有些字显示的效果不太一样,有的大,有的字体不一样
另外终端其实也是一个软件,它的编码也要和环境变量LANG的编码要一致。在“终端”的菜单选项中有一个“终端”-“设定字符编码”设置
3、VIM下乱码
这个主要和两个因素有关:
一就是文件原始的编码,原始编码的设置是在VIM的配置文件里设置的
二终端有关,比如我们在终端显示一个文件,cat /tmp/helloworld.txt,所以终端的编码要和文本原始编码要一致,设置同2
4、tty登录
这个在网上百度了下,需要安装中文接口软件的支持,如zhcon,所以需要安装相应的软件,这个我暂时还没有实验过,所以具体配置等我实验后给出
5、将man的内容重定向
利用man,我们能够查看到好多有用的信息,但是有时候想把man中的内容保存在文本中,方便以后查看。
比如把iptables的信息保存在iptables.txt中:man iptables > iptables.txt
但是这样操作的结果有时候却差强人意,有好多乱码,解决的办法是:man iptables | col -b > iptables.txt
col的作用是将输入的内容进行转换过滤后输出,-b就是不显示回退键
6、从windows下拷过来的文本文件在Linux下出现乱码之所以出现乱码是因为windows下中文的编码一般为gbk,而Linux下中文编码一般为 utf8,所以在 windows下正常打开的文件,到Linux下很可能出现乱码。
解决办法是:使用命令iconv对文本内容编码进行转换
iconv -f gbk -tutf8 原文本.txt > 新文本.txt
7、挂载U盘后,U盘中中文目录名或文件名为乱码
正常挂载:mount /dev/sdb1 /mnt/usb ,然后使用ls /mnt/usb发现U盘上中文目录和文件名都是乱码
解决办法:在挂载时加上字符集参数 mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
其他乱码,会在以后的学习中逐步发现解决,暂时先给出这几种常见的乱码情况,未完待续...
|