二进制文件转化成文本文件

  • Post author:
  • Post category:其他


文章中如果有写错、表述不明、有疑问或者需要扩展的知识,欢迎留言或者私信~

1.区别

如果一个文件说是

文本文件

,使用任何一种

文本编辑器

打开可以展现出

人类可读信息字符

,因为编码都

符合某种编码方式

,如ASCII、UTF8、GB2312等等(在文件头可以读出来是什么编码方式,然后文本编辑器再按照规则去读取翻译成对应的字符,展示给我们的就是可读的了)。(关于编码方式不了解可以看

这一篇

如果一个文件说是

二进制文件

,肯定没有编码方式,使用某些

文本编辑器

可以打开,展现出来的就是可能一些

乱码

的字符;也有些可以读取二进制文件的,展示出来就是原始的0101这种二进制了。比如说使用

UtralEdit

可以显示

原始的二进制文件

,显示的就是

原始16进制

。右侧自动选了

一种编码方式进行翻译成文

本,比如他自动选择的就是GBK,显示出来就是乱码。

下图的例子使用

UtralEdit

打开的一个

png格式

的文件(也就是图片,本质上也是一个二进制文件):

(疑问:为什么utraledit 选择了

另外一种编码方式的时候


左边的二进制的值

也变了??)

有些

二进制文件

使用

通用的规范进行编码,有一定的标准

,比如常见的图片格式JPEG,PNG,使用

看图软件

就能正常打开

显示出图片的样子

。就是二进制文件需要特殊的软件进行打开才是正确的打开方式。

有些

二进制文件

编码格式是程序自定义规范进行编码,对于这种二进制,只有程序的开发者自己知道该文件所对应的编码规范,进行解码使用。


可执行文件

,也是文件,也是

二进制文件

,而对这

种文件的解析就需要操作系统的参与了

,涉及到

可执行文件的装载等,也是有一个的规范的

。可以查看《程序员的自我修养》下的文章

我们说这个文件是二进制文件,这个是文本文件,视角就是从

打开这个文件



程序

在对

文件内容

的解释上。

我们使用一般的

文本编辑器

打开

文本文件,

看到的是我们认识的字符。

打开

二进制文件

,可能根本就打不开。

(而从计

算机本身的存储

的视角来看,文本文件和二进制文件都是文件,都是存储在电脑上的都是0101的二进制。只不过文本文件是把字符用某种方式解码成对应的0101这种,读取时再解码成字符)

2.如何修改二进制文件-Vim

使用vim修改:

vim -b 文件名


:%!xxd

——转化成16进制

然后进行修改二进制


:%!xxd -r

——转回去


:wq


在Linux下使用vim配合xxd查看并编辑二进制文件 – killkill – 博客园

3.如何把二进制文件转化成其他文本文件,从而搜索ASCII字符

1.先使用

iconv

命令://IGNORE忽略那些翻译不了的

iconv -f GB2312 -t UTF-8//IGNORE {} -o $filename.text


Linux命令(35)——iconv命令 – 云+社区 – 腾讯云

2.再使用

grep

对 *.text 进行搜索想要查找的ASCII字符



版权声明:本文为u012138730原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。