E-mail传送中的三种编码标准
⼀、编码的必要性
E-mail只能传送ASCII码(美国国家标准信息交换码)格式的⽂字信息,ASCII码是7位代码,⾮ASCII码格式的⽂件在传送过程中就需要先编成7位的ASCII代码,然后才能通过E-mail进⾏传送;如果不经过编码,则在传送过程中会因为ASCII码7位的限制⽽被分解,分解之后只会让收信⽅看到⼀堆杂乱的ASCII字符。经过编码后的⽂件,在传送过程中可顺利传送,不会有“被截掉⼀位”的危险。但是收信⽅必须具有相应的解码程序,将这份经过编码的东西还原,才能看到发信⼈要传送的信息是什么。
有⼀点要注意:⼤部分的⼈认为“⽂本⽂件不需要编码”,但我们的中⽂是属于8位代码的⽂字,并不是标准的ASCII码格式,由于在国内中⽂是通⾏的⽂字,所以⼤部分的邮件服务器都已能够处理GB内码的⽂件,因⽽不需要做这种编码/解码的操作,可以直接传送。但如果要送中⽂邮件到国外,就需要经过这种转换才能传送,因为国外的邮件服务器是⽆法辨认中⽂内码的。中⽂码在经过⼀些不⽀持中⽂内码的传递主机时,依然会被截掉⼀位,造成⽂件⽀离破碎⽆法读龋⽽经过编码的中⽂邮件,收信⼈收到后将⽂件解码还原,也需要有中⽂系统才能看所写的中⽂信息。
⼆、常见的三种编码标准
●UU编码(Unix-to-Unixencoding)
uuencode和uudecode原来是unix系统中使⽤的编码和解码程序,后来被改写成为在DOS中亦可执⾏的程序。在早期传送⾮ASCII码的⽂件时,最常⽤的便是这种UU编码⽅式。
使⽤的⽅法是:发邮件前,在DOS下先⽤程序将原⽂件编码成ASCII码⽂件,然后将邮件发出。收信⼈收到邮件后,⽤程序将⽂件还原。
基于Windows的类似程序有wincode和winzip等。
wincode的使⽤原理和DOS下的uuencode和uudecode没什么两样,只是在Windows的界⾯下操作更为简便。wincode除⽀持UU编码外也⽀持MIME、Binhex等编码格式,应⽤范围颇为⼴泛。ascii文字是啥
以上介绍的UU编码并⾮只能编中⽂⽂字。任何你要寄送的⽂件包括exe等⼆进制⽂件都可以按照编码→发送→收信⽅收信→解码还原的步骤传送。
●MIME标准(Multipurpose Internet Mail Extentions)
UU编码解决了E-mail只能传送ASCII⽂件的问题。但这种⽅式其实并不是很⽅便,因⽽⼜发展出⼀种新的编码标准,其全名是Multipurpose Internet Mail Extentions,⼀般译作“多媒体邮件传送模式”。顾名思义,它可以传送多媒体⽂件,在⼀封电⼦邮件中附加各种格式⽂件⼀起送出。
MIME标准现已成为Internet电⼦邮件的主流。它的好处是以物件作为包装⽅式,可将多种不同⽂件⼀起打包后传送。发信⼈只要将要传送的⽂件选好,它在传送时即时编码,收信⼈的软件收到也是即时解码还原,完全⾃动化,⾮常⽅便。当然先决条件是双⽅的软件都必须具有这种功能,要不然发信⼈很⽅便地把信送出去了,但收信⼈的软件如果没有这种功能,⽆法把它还原,看到的也就是⼀⼤堆乱码了。使⽤这种⽅式,⽤户根本不需要知道它是如何编码/解码的。即使只是⽤⽂字写的信,⼀样是打好包便寄出。如果是要寄多媒体⽂件,只要做选⽂件的动作,选完后寄出,其余的⼯作由电⼦邮件软件⾃动完成。
由于MIME的⽅便性,愈来愈多的电⼦邮件软件采⽤这种⽅式。(我们现在最常使⽤的电⼦邮件软件Eudora、NetscapeMail、InternetMail 等就是采⽤MIME⽅式,所以我们才能如此轻松地收发电⼦邮件。)MIME定义的是⼀种规格,也可以说是⼀种统称。
其实能够符合这种规格的编码⽅式并不是单⼀的⼀种,只要符合这种MIME规格便可顺利传送。以货运作为⽐喻,若货运公司规定送交货运的规格是1⽴⽅⽶⼤⼩的箱⼦便可托运,它并没有限制⼀定要⽤⽊箱或是铁⽪箱,只要是1⽴⽅⽶⼤⼩,货运公司就帮你送达。⾄于箱⼦⾥你是装⾷品或是书本或是⾐服或是混合着装也没有限定,也就是说,多种格式的⽂件可以⼀起寄送。
就上例⽽⾔,“1⽴⽅⽶⼤斜是货运规格,也就是我们的MIME规格。⽊箱或铁⽪箱是编码⽅式,现在我们就来看看你有哪些“箱⼦种
类”可以选择。MIME定义两种编码⽅式:Base64与QP(Quote-Printable)。QP的规则是对于资料中的7位⽆须重复编码,仅将8位的数据转成7位。QP编码适⽤于⾮ASCII码的⽂字内容,例如我们的中⽂⽂件。⽽Base64的编码规则,是将整个⽂件重新编码成7位,通常⽤于传送⼆进制⽂件。编码的⽅式不同会影响编码之后的⽂件⼤校⽽具有MIME功能的E-mail软件⼤都能⾃动判别你的邮件是采⽤何种编码,然后⾃动选择⽤QP或Base64来解码。
QP编码的⽅式,是将⼀个字节⽤两个16进制数值表⽰,然后在前⾯加“=”。所以我们看到经过QP编码后的⽂字通常是这个样⼦:
=A4j=AEa=A6n=A1I=A7=DA=AC0=B1=E7=A9s=A7g=A1A=AB=DC=B0=AA=B
Base64编码后的⽂字通常是:pGquYaZuoUmn2qxPseepc6dnoUGr3LCqv70ms773t3ymYqa5plakaq5hptu如果你使⽤⽀持MIME 标准的电⼦邮件软件,那么在收发信件的过程中是看不到这些乱七⼋糟的字符的。但如果很不幸,收信⼈没有这种⽀持MIME的软件,他看到的东西就是上⾯那⼀⼤段符号了。不过别急,你仍然可以先将这份“天书”存档,然后使⽤⼀些decode软件把它翻译回来。
●Binhex编码
Binhex的编码⽅式常⽤于Mac机器,在PC上是较少使⽤的⼀种编码⽅式。⼀般PC上的电⼦邮件软件,亦多数⽀持MIME的规格,很少有⽀持Binhex格式。在常⽤的电⼦邮件软件中,唯Eudora具有这种功能,可直接解读Binhex的编码,如果你收到了这种由Binhex所编码的邮件,⽽且你的mail软件并不是Eudora或其他⽀持Binhex格式的软件。那也得⽤⼀个解读Binhex的程序解码。有⼀个共享软件 具有这个功能,它在许多FTP站点都能到。
在Windows下,你还可以⽤我们前⾯所介绍的wincode来解码。本⽂介绍的UU编码、MIME以及Binhex都可以⽤它来处理。但可惜的是,对于MIME,它只处理Base64的编码。如果能再加上QP的功能,真的可以靠它⾛遍天下了。
在MIME⼏乎已成标准规格的现在,⽤⼀套⽀持MIME的软件来做收发E-mail的⼯作,这些编码/解码⼯作就会⾃动完成,不会给你带来⿇烦。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。