乱码大全(13)──BinHex

来源:百度文库 编辑:神马文学网 时间:2024/04/28 16:08:17
乱码大全(13)──BinHex  “乱码大全”,作者:bluesea,水木清华 BBS 成员。欢迎在 BBS 中转载,帮助计算机初学者解决使用软件过程中遇到的实际问题。本文原载于水木清华 BBS 的 Internet讨论区。地址是: telnet://bbs.tsinghua.edu.cn ,WWW访问的地址是 http://bbs.tsinghua.edu.cn 。当下面的条件全部满足时,转载本文可以不经过作者允许:(1) 转载水木清华 BBS 的信头;(2)不修改原文;(3) 转载仅限于各种 BBS 和非商业性质的个人网点。严禁各种形式的抄袭,严禁非作者将 本文或局部用于任何正式出版的刊物。请所有转载文章的网友注意阅读本文的第一段,遵守网络的惯例、尊重作者的劳动。本自然段是全文的一部分。
bluesea@163.net
BinHex 编码是 Macintosh 计算机上用可打印字符表示/传输二进制文件的一种编码方法。目前通用的 BinHex 4.0 的这种编码的文件一般以 .HQX 为后缀名。早期的 BinHex2.0 编码文件一般以 .HEX 为文件名后缀。 BinHex 4.0 是一种带有 CRC 校验的编码。在一些 email 程序中 (如使用最广泛的邮件程序之一 Eudora ),BinHex 编码是用于 Attach 二进制文件的方法之一。
但是有很多广泛使用的 email 程序不支持这种格式,如Microsoft OutLook Express 接收 Eudora 发来的以 BinHex 夹带的二进制文件时,只能分辨出夹带的文件,却不能正确解码。类似的情况需要将信件 Forward 到一个可以解析相应格式的邮件程序中或对邮件原文进行人工处理。
BinHex 编码是这个样子的:
(This file must be converted with BinHex 4.0)
:#dC*@&"A58iZ@NP3!("D59"`@NP3!!!!!%$)!!!!!‘eC8%X$""3!!J!)!0e44b1
NrPJL%N!!!!"d!!!,!!!!4NPB8&G*6Lj&@%AX[AeJ8dA@1$c*6@l5I0`@U18lK)p
‘)DK8#Y3MHLKmPJ+B8T&LJ3"&D6*0@A#KKSp$NP[UeUl$2IS$S2Z[(ZL"&!LL
......
!!!!!!!3!)+bfS!!!!!"‘59K39dP1,N9B43F!1J"dH(#V#,jTFELAU2ql`i-5eAr
iVS(5RqX,rF9@h&M(%R)a@8flJFd‘0dpD@i$pVJ"FFBTf‘@a3V1Sb8%X&"J!!!!!
"!!%!G`!!!$Y!!!!!!"+D!!!!:
它的开始行必定是“(This file must be converted with BinHex 4.0)”,整个数据块以冒号开始、并以冒号结尾。使用 BinHex 编码的邮件一般应该在信头中含有类似下面这样的说明(假设Attach文件名为filename.ext的话):
Content-Type: application/mac-binhex40; name="filename.ext"
Content-Disposition: attachment; filename="filename.ext"
将含有数据块的文件更名为 .HQX,即可双击该文件启动 Winzip 进行解码。 (http://www.winzp.com)。至此,我们不得不赞叹 winzip 在解码工作中的无以伦比的表现 ( 其支持的后缀名有:*.zip、 *.z、 *.gz、*.tz、*.taz、*.tgz、 *.lzh、*.arj、*.arc、*.tar、.exe(ziped)、 *.uu、 *.uue、 *.xxe、*.bhx、 *.b64、*.hqx )。遗憾的是 Winzip 对 BinHex 的解码并不总是成功的。在测试某一封 Eudora 发出的 BinHex 编码信件的时候,Winzip 不能解码。
一些软件支持BinHex解码,它们同时大多还支持一些其他编码。如 StuffIt Expander (ftp://ftp.aladdinsys.com/ 或找其他共享软件网点)、 Fastcode32 (http://www.freewarehome.com/utilities/encrypt.html) 等,一些网点 ( 如 http://helpdesk.uvic.ca/how-to/support/unix/hqx/unhqx.c)还提供了BinHex 解码的源程序。
BinHex 4.0 是由 Yves Lempereur 在 84-85 年开发的,这是目前最通用的版本,在 Mac/Unix/PC 上广泛运用。Yves 还开发了一个与 MacBinary ( Mac上 面的另一种编码) 兼容的 BinHex 5.0 版本。 BinHex 5.0 与 BinHex 4.0 不兼容,它们是两种截然不同的编码。 BinHex 比一般编码耗费更多的字节,并且跨平台的解码工具比其他编码少。