2023年7月10日发(作者:)
⼆进制⽂件转化成⽂本⽂件1.区别我们说这个⽂件是⼆进制⽂件,这个是⽂本⽂件,视⾓就是从打开这个⽂件的程序在对⽂件内容的解释上。我们使⽤⼀般的⽂本编辑器打开⽂本⽂件,看到的是我们认识的字符。打开⼆进制⽂件,可能根本就打不开。(⽽从计算机本⾝的存储的视⾓来看,⽂本⽂件和⼆进制⽂件都是⽂件,都是存储在电脑上的都是0101的⼆进制。只不过⽂本⽂件是把字符⽤某种⽅式解码成对应的0101这种。)如果是⽂本⽂件,使⽤任何⼀种⽂本编辑器打开可以展现出⼈类可读信息字符,因为编码都符合某种编码⽅式,如ASCII、UTF8、GB2312等等。(关于编码⽅式不了解可以看)如果是⼆进制⽂件,肯定没有编码⽅式,使⽤某些⽂本编辑器可以打开,展现出来的就是⼀些乱七⼋糟的字符。⽽是需要特殊的软件进⾏打开才是正确的打开⽅式。使⽤UtralEdit可以显⽰原始的⼆进制⽂件,显⽰的就是原始16进制。右侧⾃动选了⼀种编码⽅式进⾏翻译成⽂本,⽐如他⾃动选择的就是GBK,显⽰出来就是乱码。下图的例⼦使⽤UtralEdit打开的⼀个png格式的⽂件(也就是图⽚,本质上也是⼀个⼆进制⽂件):(疑问:为什么utraledit 选择了另外⼀种编码⽅式的时候 左边的⼆进制的值也变了??)
有些⼆进制⽂件使⽤通⽤的规范进⾏编码,有⼀定的标准,⽐如常见的图⽚格式JPEG,PNG,使⽤看图软件就能正常打开显⽰出图⽚的样⼦。有些⼆进制⽂件编码格式是程序⾃定义规范进⾏编码,对于这种⼆进制,只有程序的开发者⾃⼰知道该⽂件所对应的编码规范,进⾏解码使⽤。(可执⾏⽂件,也是⽂件,也是⼆进制⽂件,⽽对这种⽂件的解析就需要操作系统的参与了,涉及到可执⾏⽂件的装载等,也是有⼀个的规范的。可以查看《程序员的⾃我修养》下的⽂章)2.如何修改⼆进制⽂件-Vim使⽤vim修改:vim -b ⽂件名:%!xxd ——转化成16进制然后进⾏修改⼆进制:%!xxd -r——转回去:wq3.如何把⼆进制⽂件转化成其他⽂本⽂件,从⽽搜索ASCII字符1.先使⽤iconv命令://IGNORE忽略那些翻译不了的iconv -f GB2312 -t UTF-8//IGNORE {} -o $2.再使⽤grep 对 *.text 进⾏搜索想要查找的ASCII字符
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688985330a191684.html
评论列表(0条)