二进制文件转化成文本文件 您所在的位置:网站首页 notepad怎么转16进制 二进制文件转化成文本文件

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

2023-09-28 02:49| 来源: 网络整理| 查看: 265

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

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字符



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有