linux查看文件编码格式

1.file命令

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

b9362e1ca81011a0f921a7f13e537450.png

使用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

文件内容

f8507ab8e468367ccf7da64681d0a183.png

使用:set fileencoding

75c1ab6637fed8661e8899025f3ca3b8.png

7728130e8d4fd6c3080b396798c25c28.png

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

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

文件内容

bc3ba682c088c4974c97ad404619df3e.png

使用:set fileencoding

4b3c0a7eb850d8c1b85de5f465aaada2.png

66d306a00f8f12eb7124b8da82fdef36.png

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

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

文件内容

bb9e05cd1fa5f48ecb6787ebd6bec9e3.png

使用:set fileencoding

4b3c0a7eb850d8c1b85de5f465aaada2.png

3d6962da830215f2e31c369f1292d72c.png

小结:从以上三种情况来看,进入文件使用: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

文件内容

45d25de848dbe37dc80a3984509cf6f5.png

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

6b63442f692194d836eb974c52162936.png

查看转换后的编码格式

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

Universal transformation format 8 bits; UTF-8

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

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

文件内容

9d619d6355ecbdba0bc28e7a0a406321.png

出现错误,转换失败

72b9958a0781b6a60748638f426d4910.png

2.iconv 命令

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

98b028423258a098314db31703190794.png

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

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

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

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐