当前位置:  开发笔记 > 运维 > 正文

究竟是什么导致二进制文件"乱码"?

如何解决《究竟是什么导致二进制文件"乱码"?》经验,为你挑选了2个好方法。

我还没有找到这个特定问题的答案; 也许没有一个.但我一直想知道它.

当您在文本编辑器中查看二进制文件时,究竟是什么导致二进制文件显示为"乱码"?加密文件也是如此.尝试将文件的二进制值转换为ASCII吗?是否可以转换视图以显示原始二进制值,即显示组成文件的1和0?

最后,有没有办法确定哪个程序将正确打开数据文件?很多时候,特别是对于Windows,文件是孤立的,或者与特定程序无关.在文本编辑器中打开它有时会告诉你它属于哪里,但由于胡言乱语,大部分时间都没有.如果扩展程序未提供任何信息,您如何确定它所属的程序?



1> Ross..:

尝试将文件的二进制值转换为ASCII吗?

是的,这正是发生的事情.通常,文件的二进制值还包括不可打印的ASCII控制字符,从而导致在典型的文本编辑器中显示更奇怪的显示.

是否可以转换视图以显示原始二进制值,即显示组成文件的1和0?

这取决于你的编辑.你想要的是一个"十六进制编辑器",而不是一个普通的文本编辑器.这将显示文件的原始内容(通常以十六进制而不是二进制,因为零和一会占用大量空间并且更难阅读).

最后,有没有办法确定哪个程序将正确打开数据文件?

有一个名为"file"的Linux命令行程序将尝试分析文件(通常查找常见的标题模式)并告诉您它是什么类型的文件(例如文本,音频,视频或XML,等等).我不确定是否有适用于Windows的等效程序.当然,这个程序的输出只是猜测,但是当你不知道文件的格式是什么时,它会非常有用.



2> Jonathan Lef..:

二进制文件显示为乱码,因为其中的数据是为机器读取而不是为人类设计的.可悲的是,我们中的一些人习惯于解释胡言乱语 - 尽管有一些专门的工具可以帮助更好地查看数据 - 但大多数人不应该知道.

文件中的每个字节都被视为当前代码集中的字符(可能是Windows上的CP1252).例如,字节值65是'A'; 您可以在网上轻松找到说明性示例.因此,组成二进制数据的字节将根据代码集显示 - 与文本编辑器一样.它不会尝试转换二进制文件 - 它不知道如何(只有原始程序才能).

至于如何检测创建文件的程序 - 有时你可能会这样做,但不容易和可靠.在Unix上(或在Windows上使用Cygwin),"文件"程序可能会有所帮助.该程序查看尝试猜测程序的前几个字节.

加密数据应该看起来像胡言乱语.如果它看起来不像胡言乱语,那么它的加密可能不是很好.


哈哈,"我们中的一些人习惯于解释胡言乱语" - 回到石器时代,我记得用他的(4800波特)调制解调器连接问题帮助客户.我让他通过电话描述了他在他身上看到的垃圾,我立即确定了解决问题的方法.现在想想它有点吓人....
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有