Linux查看文件编码格式

linux查看文件编码格式

1.file命令

首先查看file命令的help,file --help,里面有详情的参数说明。

Linux查看文件编码格式_第1张图片

使用file 命令查看文件的编码格式

[root@dep-184 /]# file 1.txt

1.txt: ISO-8859 text

2.vim 命令

使用vim命令进入文件 1.txt,然后在使用 “:set fileencoding” 查看文件当前展示的编码格式(这里必须确保展示内容无乱码,才可以得到内容真实的编码格式),我这里的文件1.txt 内容实际是gbk,而文件保存时的编码格式是ISO-8859,如下:

不加任何编码格式进入文件,则文件编码格式是latin1(Latin1是ISO-8859-1的别名,有些环境下写作Latin-1)

[root@dep-184 /]# vim 1.txt

文件内容

使用:set fileencoding

指定文件展示的编码格式进入文件,此时展示的内容是正常的,但是使用:set fileencoding 查看是cp936(cp936就是指系统里第936号编码格式,即GB2312的编码)

[root@dep-184 /]# vim "+e ++enc=gbk" 1.txt

文件内容

使用:set fileencoding

最后在试一下指定utf-8进入文件的情况,查看的内容是乱码的,使用:set fileencoding 查看是utf-8。

[root@dep-184 /]# vim "+e ++enc=utf-8" 1.txt

文件内容

使用:set fileencoding

小结:从以上三种情况来看,进入文件使用:set fileencoding 查看编码时,编码格式是根据终端显示的编码格式来确定的,使用哪种编码方式进入文件展示文件那天,则就是哪种编码格式,即你使用正确的编码格式进入文件,文件无乱码则使用这种方式查看编码格式就是正确的。

3.enca命令

使用enca可以直接查看文件内容的编码格式,如下

[root@dep-184 /]# enca  1.txt 

Simplified Chinese National Standard; GB2312

enca安装参考:下载地址https://dl.cihar.com/enca/enca-1.19.tar.gz

解压:tar -xvf enca-1.19.tar.gz

进入目录

./configura

安装:

make

make install

enca 还有其他的参数可以设置,查看enca --help

 

linux文件编码转换

1.vim 命令

在vim中使用 :set fileencoding=xxx 来转换文件的编码格式,这里vim文件时需要注意,必须指定编码进入文件或者直接进入文件时内容无乱码,如下:

[root@dep-184 /]# vim "+e ++enc=gbk" 1.txt

文件内容

转换编码格式,回车无错误则转换成功,最后 :wq保存退出。

查看转换后的编码格式

[root@dep-184 /]# enca 1.txt

Universal transformation format 8 bits; UTF-8

如果不指定编码格式进入文件会出现什么情况呢,以下是我测试的结果:

[root@dep-184 /]# vim 1.txt

文件内容

出现错误,转换失败

2.iconv 命令

这里必须知道文件内容的真实编码,转换的时候才不会出现乱码,如下

Linux查看文件编码格式_第2张图片

转换命令,比如将一个UTF-8 编码的文件转换成GBK编码(此处应该知道文件内容的正确编码)

iconv -f GBK -t UTF-8 1.txt -o 2.txt

 

以上是我在测试的时候总结的,如果有错误的地方欢迎小伙伴指正,谢谢!

你可能感兴趣的:(Shell)