关于 Linux 系统中使用 cat 以及 vim 出现中文乱码问题的解决方法
前言
前段时间在做 Samba 实验时遇到一个问题,即我在 Windows PC 端新建的 txt 文本,在 Linux 服务端去查看或者编辑时,会因为字符集的问题出现乱码,本文记录下处理这个小 case 的方法。
1. 乱码表现
在 Windows PC 端查看文本文件情况如下:
在 Linux 端使用 cat 命令查看文本文件情况如下:
在 Linux 端使用 vim 命令编辑文本文件情况如下:
使用vim打开文件时,中文显示乱码,查看linux系统默认语言编码是UTF-8;
查看当前语言编码也是UTF-8
/# local
LANG=ch-CN.UTF-8
LANGUAGE=
LC_CTYPE="ch-CN.UTF-8"
LC_NUMERIC="ch-CN.UTF-8"
LC_TIME="ch-CN.UTF-8"
LC_COLLATE="ch-CN.UTF-8"
LC_MONETARY="ch-CN.UTF-8"
LC_MESSAGES="ch-CN.UTF-8"
LC_PAPER="ch-CN.UTF-8"
LC_NAME="ch-CN.UTF-8"
LC_ADDRESS="ch-CN.UTF-8"
LC_TELEPHONE="ch-CN.UTF-8"
LC_MEASUREMENT="ch-CN.UTF-8"
LC_IDENTIFICATION="ch-CN.UTF-8"
LC_ALL=
2. 解决 cat 查看文件出现中文乱码
[root@centos76 新建文件夹]# cat README.txt | iconv -f GBK -t UTF-8
小时不识月,
呼作白玉盘。
又疑瑶台镜,
飞在青云端。[root@centos76 新建文件夹]#
3. 解决 vim 编辑文件出现中文乱码
编辑 “/etc/vimrc” 文件,添加如下语句:
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc
关于在vim配置文件添加的配置的意思如下:
fileencodings : vim启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式;
termencoding:vim所工作的终端的字符编码方式;
encoding:vim内部使用的字符编码方式,包括 vim 的 buffer (缓冲区)、菜单文本、消息文本等;
fileformats:设置vim打开文件格式;
编辑完成后重新用 vim 编辑文件就不会出现乱码了(这里的 ^M
是 Windows 系统特有的换行符,不是乱码):
针对 ^M
换行符,可以使用如下命令进行格式转换,之后就不会出现 ^M
了:
[root@centos76 新建文件夹]# yum -y install dos2unix //配置本地 yum 源即可安装。
[root@centos76 新建文件夹]# dos2unix README.txt //将 dos 文件格式转换成 unix 文件格式。
dos2unix: converting file README.txt to Unix format ...
更多推荐
所有评论(0)