编码 | 解码 | 压缩

> macintosh | 经典 | 复古 <

// BinHex 4.0 - 经典 Macintosh 二进制文件编码格式

[CLASSIC]

经典 Mac

为经典 Macintosh 系统和软件设计的标准编码格式。

[METADATA]

资源分叉

在编码结果中保留 Mac 资源分叉(resource fork)以及文件元数据。

[COMPATIBLE]

7 位安全

仅使用 ASCII 的编码方式,适用于电子邮件和早期 BBS 等只支持文本的系统。

>> 技术细节

BinHex 的工作方式:

BinHex 4.0 使用 64 个 ASCII 字符对二进制数据进行编码,理念上类似 Base64,但字符表不同。它包含 CRC 校验,并保留 Mac 文件的元数据。

示例:

"Hello" → :&9&QE'0S:

为什么使用 BinHex:

  • >兼容经典 Mac 系统
  • >保留资源分叉(resource fork)
  • >编码文件元数据
  • >复古计算 / Vintage computing
  • >历史文件格式支持

>> 常见问题

什么是 BinHex 编码?

BinHex 4.0 是一种为经典 Macintosh 设计的二进制转文本编码格式,用于在仅支持文本的系统中安全传输文件,同时保留 Mac 特有的元数据。

为什么会出现 BinHex?

BinHex 的出现是为了解决带有资源分叉的 Mac 文件,在只支持 7 位 ASCII 文本的电子邮件和 BBS 系统中传输的问题。

现在还会用到 BinHex 吗?

在现代系统中 BinHex 已很少使用,但对于经典 Mac 爱好者、数字档案保存,以及处理老旧 Mac 软件与文件时,它依然非常有用。

BinHex 与 Base64 有什么不同?

BinHex 使用不同的 64 字符表,包含 CRC 校验,并且可以编码 Mac 特有的文件元数据,例如资源分叉和文件类型。

// 对比

名称extMarker
BinHex 4.0.hqx(This file must be converted with BinHex 4.0)
uuencode.uuebegin 644 file
Base64 (MIME).b64Content-Transfer-Encoding: base64
yEnc.yenc=ybegin line=128 size=...

// 代码示例

Header     (This file must be converted with BinHex 4.0)
Body       :  6-bit characters, 64 columns per line  :
Alphabet   !"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr
RLE        0x90 marks a run  (\x90 \x00 = literal 0x90)
Checksum   CRC-16 CCITT for header, data fork and resource fork

>> 更多问题

问:BinHex 是什么,以前用来做什么?

答:BinHex 4.0 是经典 Mac OS 的文本编码格式(1985 年,扩展名 .hqx)。它把含资源分支的二进制文件转换成 7 位 ASCII,以便通过电子邮件、Usenet 或 BBS 传输。

问:BinHex 与 Base64 有何不同?

答:两者都是每字符 6 位,但 BinHex 有自己的字母表,把数据分支、资源分支、文件名和类型放进同一数据流,用 RLE(标记 0x90)压缩重复,并以 CRC-16 校验。

问:现在还能打开 .hqx 文件吗?

答:可以。The Unarchiver、StuffIt Expander 等工具都能解开 .hqx。本工具在浏览器中编码和解码原始数据流,数据始终留在本地。

其他语言