【发布时间】:2023-03-27 14:30:02
【问题描述】:
有时,当您下载具有错误 mime 类型的已编译二进制文件时,或者例如在二进制文件上运行“更多”命令时,您会因为缺少更好的术语而得到一堆“乱码”。
例如,这是我在 OS X 上用 gcc 编译的一个非常简单的 C 程序的命令行运行“more”时看到的 sn-p。
<94>^^^@^@ESC^@^@^@^^^A^@^@<A8>^^^@^@.^@^@^@^N^D^@^@^P ^@^@@^@^@^@^O^D^@^@^L ^@^@H^@^@^@^O^D^@^@^H ^@^@P^@^@^@^O
^D^@^@^@ ^@^@\^@^@^@^C^@^P^@^@^P^@^@p^@^@^@^O^A^@^@b^_^@^@y^@^@^@^O^D^@^@^D ^@^@<82>^@^@^@^O^A^@^@<B6>^^^@^@<88>
^@^@^@^O^A^@^@T^_^@^@<8D>^@^@^@^O^A^@^@T^^^@^@<93>^@^@^@^A^@^A^B^@^@^@^@<99>^@^@^@^A^@^A^B^@^@^@^@^L^@^@^@^M^@^@
^@ ^@dyld_stub_binding_helper^@__dyld_func_lookup^@dyld__mach_header^@_NXArgc^@_NXArgv^@___progname^@__mh_execute
_header^@_average^@_environ^@_main^@_sum^@start^@_exit^@_printf^@^@^@^@
有人可以简单地解释这是为什么吗?当文本编辑器或纯文本 mime 类型试图解释二进制数据时会发生什么? ^@ 在这种情况下意味着什么吗?为什么有一些文字和一些乱码?这种二进制数据在文本中的表示方式有什么标准吗?为什么不是简单的 1 和 0?
我可以在概念上将 ascii 或 unicode 理解为数字系统中字符的表示,可以简化为二进制 1 和 0 以及 CPU 可以理解的数字系统。但在更高的层次上,我试图弄清楚二进制数据是什么。如果有意义的话,我想我想“看到抽象”。
有没有办法在文本编辑器中以任何有意义的方式“查看”二进制数据?
【问题讨论】:
-
感谢所有回复的人。只是出于好奇,上述 sn-p 中尖括号代码的含义是什么?例如