通过电子邮件发送你的微笑
你上次发送或接收电子邮件是什么时候? 对吧。 万维网冲浪很有趣,但互联网上真正的杀手级应用是电子邮件。 另一个同样流行的服务是 Usenet,您可以在其中直接定位目标受众。 毫无疑问,这两项服务是最具个人化的。
假设你想对你的朋友微笑? 或者你怒火中烧? 我们都知道这里要使用的“表情符号”。 然而,你在网上看不到表情符号; 相反,你会看到图标笑脸,甚至可能是一张微笑的照片。 这些相同的符号在电子邮件中比表情符号更有效,一声威胁性的雷声真的会吓到你的读者。“现在,那是不可能的,”你会说——你几乎是对的。 但为什么呢?
电子邮件服务构思于互联网的初期,而 Usenet 实际上是从一个离线网络开始的,消息通过慢速调制解调器线路分发。 那时,传输像图形或音频消息这样的大量数据是不可想象的,这两个系统都被设计为仅处理纯文本消息。
当可用带宽增加时,人们意识到应该可以交换二进制数据而不是仅仅是 ASCII 消息。 现在,设计上的限制变得显而易见。 但是,他们并没有回到系统的绘图板,而是引入了一种算法来将二进制数据编码为纯文本消息,从而绕过了这个问题——uuencoding诞生了。 使用此算法,三个任意字节被编码为四个可打印字符,然后可以使用旧软件安全地传输。 在另一端,接收者可以将数据解码回其原始形式。
不幸的是,最初的 uuencoding 算法并不完美,并且推出了几种其他编码。 首先是 xxencoding,然后是略微修改的 uuencoding,BinHex 编码,它还处理了 Macintosh 文件的特殊特性以及压缩性稍好的 ship 和 btoa 编码。 混乱彻底了——你需要不同的工具来处理每一种编码。
最终,MIME(多用途互联网邮件扩展)应运而生。 该标准通过引入 Base64,另一种编码算法,实现了二进制数据的轻松传输。 它还解决了其他问题,例如内容呈现和国际消息所需的本地化字符集。 通过 MIME 封装,文本、音频和视频的组合可以与指令一起在单个消息中发送(例如,音频是与视频一起播放还是之后播放)。 使用这些功能,您可以向文本添加图形图标,并用震耳欲聋的雷声强调消息。 您还可以将消息作为带有指向您主页的链接的 HTML 发送,或者作为完全格式化的 PostScript 文档发送。 MIME 可以显着更新电子邮件和 Usenet 的外观,使互联网成为一个更快乐的地方。
但生活并非如此简单。 尽管 MIME 标准于 1992 年首次发布,但尽管它有很多优点,但尚未被广泛接受。 一些小的改进已经进入了现实生活(例如 Content-Type 标头),但其全部功能尚未得到利用。 尽管如此,Usenet 上发布的大多数二进制数据都使用 uuencoding 编码,而一些基于 Windows 的电子邮件软件默认使用 BinHex 编码。 如果您仍然使用多年来一直为您服务的邮件和 Usenet 软件,您可能仍然需要解码 MIME 消息中使用的 Base64 数据。
在所有用户都切换到符合 MIME 标准的软件之前,您必须将邮件或 Usenet 阅读器中的消息保存到文件中,并使用各种工具剖析该文件,以便提取图像和音频剪辑。 即使那样,也令人惊讶的是会出多少错。
在对许多类似的工具感到失望之后,我开发了自己的“智能解码器”来解决我在接收编码文件时遇到的各种问题。
由此产生的解码器是一个名为 UUDeview 的工具。 尽管它处于早期开发阶段——其版本号为 0.5——但它运行良好。 它可以读取纯编码数据和整个消息文件夹,这些文件夹会自动排序、分组和线程化,以防任何数据分散在多个消息中(可怕的多部分消息)。 用户可以指示程序是否解码每个文件。 UUDeview 还处理 uuencoding、MIME 的 Base64 和 BinHex。
UUDeview 软件包完整地附带了 UUEnview。 UUEnview 比标准的 uuencode 有一个很大的优势,它可以直接从命令行邮寄或发布文件,无论是 uuencoded 还是作为正确的 MIME 消息。
这两个工具都可以安装来替换标准程序 uuencode 和 uudecode,模仿它们的命令行语法,同时为编码和特别是解码过程增加全部功能。
对于喜欢鼠标胜过键盘的用户,还包括一个基于 Tcl/Tk 的界面。 唉,我通常可以比 GUI 启动更快地从命令行完成解码。

图 1. UUDeview 界面截图
由于开发是在 Linux 机器和其他 Unix 系统上完成的,因此该代码具有高度可移植性。 在最新版本中,这些程序围绕一个编码和解码库构建。 使用此库,程序员不仅可以轻松编写不同的用户界面(一个简单的解码器示例是 37 行 C 源代码),而且还可以通过少量的工作在其他应用程序中使用该库的解码能力。 从网页(见下文)上,您目前可以下载 elm 邮件软件和 nn 新闻阅读器的补丁。 集成补丁后,您可以像往常一样标记邮件和文章,然后只需单击按钮即可解码任何二进制文件。
一旦全世界都切换到 MIME,UUDeview 终于可以“安息”了,但在那之前,当您尝试阅读二进制邮件和新闻文章时,它可以为您节省一些挫败感。 UUDeview 根据 GNU 通用公共许可证的条款免费分发,可以从 http://www.uni-frankfurt.de/~fp/uudeview/ 下载。
