新闻 | 天津 | 民生 | 广电 | 津抖云 | 微视 | 读图 | 文娱 | 体育 | 图事 | 理论 | 志愿 | 专题 | 工作室 | 不良信息举报
教育 | 健康 | 财经 | 地产 | 天津通 | 旅游 | 时尚 | 购物 | 汽车 | IT | 亲子 | 会计 | 访谈 | 场景秀 | 发布系统

"津云"客户端
  您当前的位置 :北方网 > IT浪潮 > 软件 > 新品show 正文
关键词:

详述E-mail的内码


http://www.enorth.com.cn  2001-02-07 00:00

  在电子邮件中遇见乱码是一件让人感到很恼火的事,尤其是遇到有重要内容的邮件则更是损失惨重。

  

  那么乱码是怎么产生的呢?如果你打开一封乱码邮件时,你就会有可能看到如下两行:

  

  Content-Transfer-Encoding: base64 (或qutoed Printable或8bit)

  Content-Type: text/plain; charset=“us-ascii”

  

  其中第一句说明此邮件传输时所用的编码,是base64还是qutoed Printable或是8bit,第二句Content-Type说明邮件的内容类型是纯文本还是图片或是超文本文档,charset说明信中文字所用的字符集。

  

  有us-ascii,ISO-8859-1,gb2312等。为什麽邮件传输时需要编码呢?因为最早的E-mail是UNIX系统中出现的,当时的E-mail只能传送ASCII码(美国国家标准信息交换码)格式的文字信息,ASCII码是7位代码,非ASCII码格式的文件在传送过程中就需要先编成7位的ASCII代码, 然后才能通过 E-mail进行传送;如果不经过编码,则在传送过程中会因为ASCII码7位的限制而被分解,分解之后只会让收信方看到一堆杂乱的ASCII字符。经过编码后的文件,在传送过程中可顺利传送,不会有“被截掉一位”的危险。但是收信方必须具有相应的解码程序,将这份经过编码的东西还原,才能看到发信人要传送的信息内容 。而我们的中文是8位代码编码的文字,并不是标准的ASCII码格式,由于在国内中文是通行的文字,所以大部分的国内邮件服务器都已能够处理GB内码的文件,因而不需要做这种编码/解码的操作,但如果要送中文邮件到国外或使用国外的邮件服务器传送邮件,就需要经过这种转换才能传送,因为国外的邮件服务器是无法辨认中文内码的。中文码在经过一些不支持中文内码的传递主机时,依然会被截掉一位,造成文件乱码无法读取。而经过编码的中文邮件,收信人收到后将文件解码还原,也需要有中文系统才能看所写的中文信息。

  

  电子邮件中常用的有三种编码标准

  

  一、UU编码(Unix-to-Unix encoding)

  

  uuencode和uudecode原来是unix系统中使用的编码和解码程序,基于Windows的类似程序有wincode和winzip等。 wincode除支持UU编码外也支持MIME、Binhex等编码格式,应用范围颇为广泛。

  以上介绍的UU编码并非只能编中文文字。任何你要寄送的文件包括*.gif,*.exe等二进制文件都可以按照编码→发送→收信方收信→解码还原的步骤传送。这种编码方法现在虽已不常用,但OE,Foxmail等绝大多数邮件系统都支持。

  

  二、MIME标准(Multipurpose Internet Mail Extentions)

  

  UU编码解决了E-mail只能传送ASCII文件的问题 。但这种方式其实并不是很方便,因而又发展出一种新的编码标准,其全名是Multipurpose Internet Mail Extentions,一般译作“多媒体邮件传送模式”。

  顾名思义,它可以传送多媒体文件,在一封电子邮件中附加各种格式的文件一起送出。

  MIME标准现已成为Internet电子邮件的主流。它的好处是以物件作为包装方式,可将多种不同文件一起打包后传送。发信人只要将要传送的文件选好,它在传送时即时编码,收信人的软件收到也是即时解码还原,完全自动化,非常方便。当然先决条件是双方的软件都必须具有这种功能,要不然发信人很方便地把信送出去了,但收信人的软件如果没有这种功能,无法把它还原,看到的也就是一大堆乱码了。使用这种方式,用户根本不需要知道它是如何编码/解码的。即使只是用文字写的信,一样是打好包便寄出。如果是要寄多媒体文件,只要做选文件的动作,选完后寄出,其余的工作由电子邮件软件自动完成。 由于MIME的方便性,愈来愈多的电子邮件软件采用这种方式。(我们现在最常使用的电子邮件软件OutlookExpress、Eudora、Foxmail和一些网上在线邮局如163、263等就是采用MIME方式,所以我们才能如此轻松地收发电子邮件。

  MIME定义的是一种规格,也可以说是一种统称。 其实能够符合这种规格的编码方式并不是单一的一种,只要符合这种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=A 1A=AB=DC=B0=AA=B而Base64编码是将连续的三个字符(二进制共24位)分解为四个六位二进制串, 每个串的大小就限定在0-63之间, 分别用ANSI字符'A'-'Z','a'-'z','0'-'9','+','/'代替; 如果最后的字符剩下一个, 补零后分解为两个六位二进制串, 编码的最后加进两个'='字符; 如果最后字符剩下两个,补零后分解为三个六位二进制串, 编码的最后加进一个'='字符。编码后的文字通常是:

  

  pGquYaZuoUmn2qxPseepc6dnoUGr3LCqv70ms773t3ymYqa5plakaq5hptu,如果你使用支持MIME标准的电子邮件软件,那么在收发信件的过程中是看不到这些乱七八糟的字符的。但如果很不幸,收信人没有这种支持MIME的软件,他看到的东西就是上面那一大段符号了。不过别急,你仍然可以先将这份“天书”存档,然后使用一些解码软件把它翻译回来。

  

  三、Binhex编码

  

  Binhex的编码方式常用于Mac机器,在PC上是较少使用的一种编码方式。一般PC上的电子邮件软件,亦多数支持MIME的规格,很少有支持Binhex格式。在常用的电子邮件软件中,唯Eudora具有这种功能,可直接解读Binhex的编码,如果你收到了这种由Binhex所编码的邮件,而且你的mail软件并不是Eudora或其他支持Binhex格式的软件,那也得用一个解读Binhex的程序解码。有一个共享软件Binhex3.exe具有这个功能,它在许多FTP站点都能找到。

  

  在Windows下,你还可以用上面介绍的wincode来解码。本文介绍的UU编码、MIME以及Binhex都可以用它来处理。但可惜的是,对于MIME,它只处理Base64的编码。如果能再加上QP的功能,真的可以靠它走遍天下了。

  

  在MIME几乎已成标准规格的现在,用一套支持MIME的软件来做收发E-mail的工作,这些编码/解码工作就会自动完成,不会给你带来麻烦。如Foxmail3.0支持MIME和UUCode两种编码方式,但MIME只支持8位(8bit)编码方式。但他支持us-ascii,ISO-8859-1,gb2312三种字符集,且它只能以纯文本方式传送正文。而OE则支持UUCode和MIME中的Base64和QP两种编码方式,除此之外他还支持邮件正文以HTML方式传送。这就是我们用OE看到的有着漂亮背景的邮件。 当然如果你收到的八位编码的邮件,不幸中途被截了一位,造成若是不是上述Base64或QP样的乱码,且是纯中文的话,也可以通过编程序来补上最高位的方法恢复,如果是中英混合的,就只能让对方重发一遍了。

  

  现在我们知道邮件的乱码是如何产生的了,如果遇到的话,相信你也可信“码”“邮”缰,游刃有余了。(信“码”“邮”缰在电子邮件中遇见乱码是一件让人感到很恼火的事,尤其是遇到有重要内容的邮件则更是损失惨重。

  

  那么乱码是怎么产生的呢?如果你打开一封乱码邮件时,你就会有可能看到如下两行:

  

  Content-Transfer-Encoding: base64 (或qutoed Printable或8bit)

  Content-Type: text/plain; charset=“us-ascii”

  

  其中第一句说明此邮件传输时所用的编码,是base64还是qutoed Printable或是8bit,第二句Content-Type说明邮件的内容类型是纯文本还是图片或是超文本文档,charset说明信中文字所用的字符集。

  

  有us-ascii,ISO-8859-1,gb2312等。为什麽邮件传输时需要编码呢?因为最早的E-mail是UNIX系统中出现的,当时的E-mail只能传送ASCII码(美国国家标准信息交换码)格式的文字信息,ASCII码是7位代码,非ASCII码格式的文件在传送过程中就需要先编成7位的ASCII代码, 然后才能通过 E-mail进行传送;如果不经过编码,则在传送过程中会因为ASCII码7位的限制而被分解,分解之后只会让收信方看到一堆杂乱的ASCII字符。经过编码后的文件,在传送过程中可顺利传送,不会有“被截掉一位”的危险。但是收信方必须具有相应的解码程序,将这份经过编码的东西还原,才能看到发信人要传送的信息内容 。而我们的中文是8位代码编码的文字,并不是标准的ASCII码格式,由于在国内中文是通行的文字,所以大部分的国内邮件服务器都已能够处理GB内码的文件,因而不需要做这种编码/解码的操作,但如果要送中文邮件到国外或使用国外的邮件服务器传送邮件,就需要经过这种转换才能传送,因为国外的邮件服务器是无法辨认中文内码的。中文码在经过一些不支持中文内码的传递主机时,依然会被截掉一位,造成文件乱码无法读取。而经过编码的中文邮件,收信人收到后将文件解码还原,也需要有中文系统才能看所写的中文信息。

  

  电子邮件中常用的有三种编码标准:

  

  一、UU编码(Unix-to-Unix encoding)

  

  uuencode和uudecode原来是unix系统中使用的编码和解码程序,基于Windows的类似程序有wincode和winzip等。 wincode除支持UU编码外也支持MIME、Binhex等编码格式,应用范围颇为广泛。

  以上介绍的UU编码并非只能编中文文字。任何你要寄送的文件包括*.gif,*.exe等二进制文件都可以按照编码→发送→收信方收信→解码还原的步骤传送。这种编码方法现在虽已不常用,但OE,Foxmail等绝大多数邮件系统都支持。

  

  二、MIME标准(Multipurpose Internet Mail Extentions)

  

  UU编码解决了E-mail只能传送ASCII文件的问题 。但这种方式其实并不是很方便,因而又发展出一种新的编码标准,其全名是Multipurpose Internet Mail Extentions,一般译作“多媒体邮件传送模式”。

  顾名思义,它可以传送多媒体文件,在一封电子邮件中附加各种格式的文件一起送出。

  MIME标准现已成为Internet电子邮件的主流。它的好处是以物件作为包装方式,可将多种不同文件一起打包后传送。发信人只要将要传送的文件选好,它在传送时即时编码,收信人的软件收到也是即时解码还原,完全自动化,非常方便。当然先决条件是双方的软件都必须具有这种功能,要不然发信人很方便地把信送出去了,但收信人的软件如果没有这种功能,无法把它还原,看到的也就是一大堆乱码了。使用这种方式,用户根本不需要知道它是如何编码/解码的。即使只是用文字写的信,一样是打好包便寄出。如果是要寄多媒体文件,只要做选文件的动作,选完后寄出,其余的工作由电子邮件软件自动完成。 由于MIME的方便性,愈来愈多的电子邮件软件采用这种方式。(我们现在最常使用的电子邮件软件OutlookExpress、Eudora、Foxmail和一些网上在线邮局如163、263等就是采用MIME方式,所以我们才能如此轻松地收发电子邮件。

  MIME定义的是一种规格,也可以说是一种统称。 其实能够符合这种规格的编码方式并不是单一的一种,只要符合这种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=A 1A=AB=DC=B0=AA=B而Base64编码是将连续的三个字符(二进制共24位)分解为四个六位二进制串, 每个串的大小就限定在0-63之间, 分别用ANSI字符'A'-'Z','a'-'z','0'-'9','+','/'代替; 如果最后的字符剩下一个, 补零后分解为两个六位二进制串, 编码的最后加进两个'='字符; 如果最后字符剩下两个,补零后分解为三个六位二进制串, 编码的最后加进一个'='字符。编码后的文字通常是:

  

  pGquYaZuoUmn2qxPseepc6dnoUGr3LCqv70ms773t3ymYqa5plakaq5hptu,如果你使用支持MIME标准的电子邮件软件,那么在收发信件的过程中是看不到这些乱七八糟的字符的。但如果很不幸,收信人没有这种支持MIME的软件,他看到的东西就是上面那一大段符号了。不过别急,你仍然可以先将这份“天书”存档,然后使用一些解码软件把它翻译回来。

  

  三、Binhex编码

  

  Binhex的编码方式常用于Mac机器,在PC上是较少使用的一种编码方式。一般PC上的电子邮件软件,亦多数支持MIME的规格,很少有支持Binhex格式。在常用的电子邮件软件中,唯Eudora具有这种功能,可直接解读Binhex的编码,如果你收到了这种由Binhex所编码的邮件,而且你的mail软件并不是Eudora或其他支持Binhex格式的软件,那也得用一个解读Binhex的程序解码。有一个共享软件Binhex3.exe具有这个功能,它在许多FTP站点都能找到。

  在Windows下,你还可以用上面介绍的wincode来解码。本文介绍的UU编码、MIME以及Binhex都可以用它来处理。但可惜的是,对于MIME,它只处理Base64的编码。如果能再加上QP的功能,真的可以靠它走遍天下了。

  在MIME几乎已成标准规格的现在,用一套支持MIME的软件来做收发E-mail的工作,这些编码/解码工作就会自动完成,不会给你带来麻烦。如Foxmail3.0支持MIME和UUCode两种编码方式,但MIME只支持8位(8bit)编码方式。但他支持us-ascii,ISO-8859-1,gb2312三种字符集,且它只能以纯文本方式传送正文。而OE则支持UUCode和MIME中的Base64和QP两种编码方式,除此之外他还支持邮件正文以HTML方式传送。这就是我们用OE看到的有着漂亮背景的邮件。 当然如果你收到的八位编码的邮件,不幸中途被截了一位,造成若是不是上述Base64或QP样的乱码,且是纯中文的话,也可以通过编程序来补上最高位的方法恢复,如果是中英混合的,就只能让对方重发一遍了。

  

  现在我们知道邮件的乱码是如何产生的了,如果遇到的话,相信你也可信“码”“邮”缰,游刃有余了。(fire)

  

编辑 超级管理员
[进入IT论坛]
请您文明上网、理性发言并遵守相关规定,在注册后发表评论。
 北方网精彩内容推荐
无标题文档
天津民生资讯
天气交通 天津福彩 每月影讯 二手市场
空气质量 天津股票 广播节目 二手房源
失物招领 股市大擂台 天视节目 每日房价
热点专题
北京奥运圣火传递和谐之旅 迎奥运 讲文明 树新风
解放思想 干事创业 科学发展 同在一方热土 共建美好家园
2008天津夏季达沃斯论坛 《今日股市观察》视频
北方网网络相声频道在线收听 2008高考招生简章 复习冲刺
天津自然博物馆馆藏精品展示 2008年天津中考问题解答
带你了解08春夏服饰流行趋势 完美塑身 舞动肚皮舞(视频)
C-NCAP碰撞试验—雪佛兰景程 特殊时期善待自己 孕期检查
热点新闻排行 财经 体育 娱乐 汽车 IT 时尚 健康 教育

Copyright (C) 2000-2021 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本网站由天津北方网版权所有