其他

为什么二进制文件打开都是一堆乱码,不应该是只有0和1吗?


打开后看到的是什么得看你怎么打开,更准确地说看你怎么显示所打开的数据。信息的背后必定是0和1,但不同的软件对读到的0,1 作不同的解析,有的解释为图像,有的解释为文字,有的解释为声音。 如果不小心发生了解释错误,例如把图像背后的0,1解释为了文字,就必然不会显示有意义的信息,所以是乱码。

想看2进制编码吗?换一个可以显示2进制编码的软件来打开这个文件,并令它采用2进制模式显示。其实这都很难做到,因为常规软件一般也只是以 16 进制数来解释2进制1,0码,这样更节省屏幕空间(1个16进制顶4位2进制)。如果你懂2进制,自己换算一下,差不多了。

如果你用记事本打开,它是默认打开文件为文本格式的,也就是说,当作ascii码文件。这样打开自然是乱码。要看二进制的话,用UE等专用软件吧。


问题:怎么避免二进制文件用记事本打开时通过ascll码变成乱码?怎么以二进制数据的形式打开而不经过字符转化?

记事本这个程序设计的时候就是用来把二进制转换为ascii码对应的字符的,所以你的要求就是让它不做它唯一会做的事情。

如果你想看二进制文件,应该用其他的程序,比如winhex(windows系统)。

而把二进制转换为字符,大部分编程语言都有把数字转换为字符串的功能。