晨风资讯网
新闻资讯网络冲浪网页设计网络编程图形图像数据库网络媒体服务器网络安全网站运营软件教程黑客认证Wap技术
教程搜索
教程搜索:
  首页 > 网络冲浪 > 网络问题 > 正文  

电子邮件的乱码原理和实战演习
日期:2006-4-20 13:59:38 来源: 作者: 浏览:

 在接收电子邮件时有时会发现邮件中的内容一片混乱,无法阅读。这主要是发、收邮件的编码和解码方式不统一造成的。本文介绍乱码生成的原理,并使用常用的收发E-mail的工具成功地模拟出各种编码方式造成的乱码,同时给出了各种方法来正确阅读这些乱码。

  一、一般原理

  由于历史原因,Internet上有些邮件系统只支持7位的ASCII字符传输,而汉字的内码是8位的,当在电子邮件中间发送中文时,如果经过这些只支持7位字符的邮件系统,便会将汉字内码的第8位的1全部变为0。因此早期国内和国外之间发送中文电子邮件时,有的没有经过7位的邮件系统,便可以直接用中文通信。而有的经过了7位的邮件系统,邮件内容便乱七八糟,只有高手通过编程将字符的第8位重新变为1才可以阅读。

  除了中文邮件外,通过E-mail传送一些二进制文档,如图片、可执行程序及压缩文件等也涉及这个问题。在电子邮件中一般采用各种邮件编码方式来解决这个问题,将8位的文字预先按照一定的规则进行编码,便可以完好地通过只支持 7位字符的邮件系统了。

  一般情况下,各种新的电子邮件工具都可以自动进行解码。但如果发送方用某种编码方式发送了邮件,而接收方电子邮件工具设置不同,这时就无法正常阅读,需要调整设置选项。此外,如果接收方没有对应的解码工具,或者接收方用的是另外一种解码工具,也同样无法正常阅读。还有一种情况是发送方从其他系统中转发了编码过的内容给你,这时电子邮件工具只能将原编码过的内容原封不动地显示出来,用户需要手工将编码剪贴下来,作相关的处理。

  此外,不同的汉字编码如GB码、BIG5、HZ等之间也会生成乱码。这可通过支持不同内码的汉字系统来正确显示。

  二、实战环境

  实战环境在中文Windows98上,安装了微软的OutLook Express和Netscape Co mmunicator软件。拥有一个E-mail帐号,可以通过Telnet方式登录。本文在这个环境下实现E-ma il乱码的再现,并给出了解决示例。

  您的实际环境可能和其稍有区别,但不要紧,本文对一种乱码介绍了多种再现和解决方法,总有一种会类似您的环境。

  三、大战Quoted-Printable编码

  1.认识Quoted-Printable编码

  其外观类似“=C2=D2=C2=EB= D4=AD=C0=ED=BA=CD=CA=B5=D5=BD= D1=DD=CF=B0”。它将一个8位的字符表示为3个字符:一个“=”和两个十六进制数。由于汉字编码一般以两个 8位表示一个汉字,所以该编码中表示一个汉字需要6个字符。如该例子中的“=C2=D2”表示“乱”字,“=C2=E B”表示“码”字。

  2.生成Quoted-Printable编码

  我们可以用各种武器再现Quoted-Printable编码,你可以根据你的环境用下面方法中的一种生成Q uoted-Printable编码的邮件,然后就可以用后续介绍的方法看到乱码的真面目。

  武器1:OutLook Express

  首先要设置武器。在OutLook Express中选择“工具/选项”菜单,在出现的对话框中点击“发送” 页,出现图1对话框。

  在“邮件”发送格式下点击“纯文本”,并点击其右端的“设置”按钮,出现图2,在其中的“文本的编码方式”后选中“Quoted Printable”,点击两次确定。回到OutLook Express主菜单。此时,你的武器已经可以生成Quoted Printable编码了。

  点击“新邮件”按钮,出现发送邮件的窗口,输入邮件内容。(为了自己能够收到,可在收件人地址中输入自己的E -mail地址)。在点击“发送”之前确保选中“格式/纯文本”和“格式/语言/简体中文/gb2312”。如图3。

  点击发送,一个Quoted Printable编码的邮件就发出去了。

  武器2:Netspcae Mail

  首先设置武器,选择“Edit/Preference”菜单,展开“Mail& Groups”,点击“Me ssages”,出现图4。

  点击其中的“More Options”按钮,在图5对话框中选中“Using the‘qutoted p rintable’ MIME encoding”选项。

  点击数次OK按钮,武器设置完毕。

  在Netscape Mail的主菜单中,点击“New Msg”按钮,不需要再作其他设置,同上将自己设置为收信人,并输入邮件标题和内容,发送后,一个同样的Quoted Printable编码的邮件就发出去了。

  3.查看Quoted-Printable编码原文

  现在我们可以查看一下前面的Quoted-Printable编码的邮件是何面目。根据你的环境,可以使用如下武器之一。

  武器1:Telnet

  直接Telnet到Unix系统E-mail服务器上,输入帐号密码后进入E-mail服务器的提示符。输入 mailx命令,出现各个邮件标题。输入“more邮件号”,可以看到邮件内容。对话过程如下所示:其中,黑体为输入内容,其余为显示内容,所有输入字母均为小写。

  UNIX(r) System V Release4.0(yc)

  login: xyx

  Password:

  Last login: Tue Aug2419:20:17 from202.120.127.202

  Sun Microsystems Inc. SunOS5.4 Generic July1994

  You have mail.

  yc% mailx

  mailx version5.0 Fri Jul1521:21:05 PDT1994 Type? fo r help.

  "/var/mail/xyx":2 messages1 new2 unread

  U1 xu Tue Aug2420:0225/750=?gb2312?B?wtLC6w==?=

  >N2 Xu Yingxiao Tue Aug2420:1120/667=?gb2312?B?wtLC 6w==?=

  ? more1

  Message1:

  From xyx@yc.shu.edu.cn Tue Aug2420:02 CDT1999

  From:"xu"

  To:

  Subject:=?gb2312?B?wtLC6w==?=

  Date: Tue,24 Aug199919:03:01+0800

  Mime-Version:1.0

  charset="gb2312"

  Content-Transfer-Encoding: quoted-printable

  X-Priority:3

  X-Msmail-Priority: Normal

  X-Mimeole: Produced By Microsoft MimeOLE V4.72.3110 .3

  =B5=E7=D7=D3=D3=CA=B C=FE=C2=D2=C2=EB=D4=A D=C0=ED= BA=CD=CA=B5=D5=BD=D1= DD=CF==B0

  其中的“=B5=E7=D7=D3=D3=CA=BC=F E=C2=D2=C2=EB=D4=AD=C0= ED=BA=CD=CA=B5=D5= BD=D1=DD=CF==B0”即为“电子邮件乱码原理和实战演习”的Qu oted-Printable编码。

  武器2:Netscape Mail

  使用Netscape Mail接收上面所发的电子邮件。有可能因为Netscape Mail功能强大,已经将编码正确解码了,“电子邮件乱码原理和实战演习”几个字赫然在目。不过我们可以选中邮件看邮件时再选择Netsc ape Mail的“View/Page Source”菜单,则其马上露出本来面目,如图6。


上一篇: 电子邮件的乱码原理和实战演习(2) 下一篇:

伊妹儿的七种武器

返回列表 打印此页 加入收藏 资讯论坛 关闭窗口 点击复制本页地址,发送给QQ/MSN好友
关于我们 - 联系我们 - 版权声明 - 帮助(?) - 广告服务 - 友情链接 - 服务项目 - 人才招聘
2003-2008 版权所有 © 晨风资讯网 未经授权禁止复制或建立镜像
CopyRight 2003-2008 www.Net118.com,All Rights Reserved.Design By ChenFeng Network Studio