• b9b8-最好的免费学习资料站!请记住我们的网址:www.b9b8.com
您当前位置: b9b8学习网知识频道电脑学习操作系统如何消除电子函件的乱码

如何消除电子函件的乱码

日期:11-27 20:11:39|b9b8学习网| http://www.b9b8.com |操作系统|人气:702

如何消除电子函件的乱码,本站还有更多关于操作系统,操作系统原理,操作系统教程,装操作系统,电脑教程相关的资料。www.b9b8.com

电子函件是Internet上最古老的服务,但直到今天,它仍然充满活力,许多新的服务如ftpmail、MailingList、新闻组等也都是从电子函件发展而来的。但对于中文用户来说,乱码问题可能困扰着许多用户。我平均每天要收几十封信,几乎每天都要遇到这种问题。如果你也有类似的遭遇,不妨照我说的试试。 乱码由何而来呢?这要从Internet的历史谈起,Internet上的函件协议是1982年定义的,那时的函件主要由英语文本组成,因而函件协议只支持简单的ASCII文本也就不足为奇了。随着Internet的广泛应用,传递的数据也已经不局限于简单的英语文本,这就需要有一种办法允许在函件消息中传递二进制数据,而又不违背当初的协议标准。把二进制数据转换为文本数据叫编码(encode),反之称为解码(decode)。目前编码的标准有很多,如UU、MIME等等。如果收发双方都使用同一种编码/解码方法,那不会有任何问题出现,但如果发送方采用一种方法,而接受方不能识别这种方法,就会出现乱码。如果是一个单位内部的函件系统,可以规定所有人使用同一种编码/解码方式,可在Internet上情况就复杂多了。你可能会收到素不相识的人的来信,他(她)可能使用很特殊的函件软件或操作系统。有的函件在传输过程中还会被进行特别的处理,也可能会对数据进行编码。所以除非你只与自己的好朋友通信(这样的话,Internet又有什么意义呢?),你早晚会遭遇到这个问题。 怎么解决乱码问题呢? 首先是设置好你的函件软件。许多函件软件允许你选择函件的编码/解码方式,最好选择MIME(MultipurposeInternetMailExtension),这是目前使用最广返的协议。如果你的函件程序不支持这种协议,你应该考虑换一个软件了。 不过,MIME包括不只一种编码/解码方案,其1.0版包括五种标准编码方式,在实际使用中还出现了一些厂商定义的方案。目前使用最多的是base64编码,它将每3个8位的字节转换为4个用ASCII码表示的6位字节,这种方法会使文件长度增加三分之一。下面就是用base64编码的ZIP文件(片段): Content-Type:application/x-zip-compressed;name="ACTIVEX.ZIP" Content-Transfer-Encoding:base64 Content-Disposition:inline;filename="ACTIVEX.ZIP" UEsDBBQAAgAIAGt/5yIVq5UiVBMAAAA4AAALAAAAQUNUSVZFWC5ET0PtO2twXNV5ZyUZ/EDYgAHHTajCGCpNQDWEuCmExsY2wY2NwXhwZkrasbGondoSY8shSacdZkr5kclM6UwnQ2eatHevMfJqbe+u7tU+7j6119rVvdrdq93VXVnIIEt+PwSWwULWw/2+c/Z6H1rZMmUykPpqPp37+M45 另外一种使用得比较多的是quoted-printable,象Lotus的cc:mail就使用这种方式。这种编码是把8位的字符转换成一个等号加上两个该字符的16进制值。这种方法非常简单,特别适合那些数据大多数是7位ASCII文本,偶尔插入8位字母的情况,但对汉字编码效果不够好,因为每个双字节汉字经过编码后会变成6个字节。下面这段是我从CERNet的InternetinChina讨论组(iic-l@iic.edu.cn)收到的一封函件的片段,它采用的就是quoted-printable编码: Date:Thu,31Jul199707:34:12-0800(GMT) From:aaoaaaoa@pub.nj-online.nj.js.cn To:iic-l@iic.edu.cn Subject:ContributionaboutChineseStockMarket Message-ID:<199707311534.HAA10434@pub.nj-online.nj.js.cn> =A1=A1=A1=A1=A1=A1=A1=A1=A1=A1=A1= =A1=BC=C6=BB=AE=CF=C2=B5=C4=D6=D0=B9=FA=B9=C9=CA=D0 =CF =A1=A1=A1=A1=C6=DF=D2=BB=CF=E3=B8=DB=BB=D8=B9=E9=A3=AC=BE=D9=B9=FA=BB=B6=C7= =EC=A1=A3=C8=BB=B6=F8=A3=AC=B1=BE=D3=A6=BD=E8=B4=CB=B6=AB=B7=E7=B8=FC=C9=CF= =D2=BB=B2=E3=C2=A5=B5=C4=BB=A6=C9=EE=B9=C9=CA=D0=C8=B4=D2=D4=C1=AC=D0=F8=B2= 在实际使用中,这种编码还有一种变形,即用“%”号代替“=”号。例如,我的主页有一个“问题与解答”专栏,访问者可以在主页上输入问题,该问题就会被发送到我的邮箱里,下面就是一个问题的片段: name=+%B0%A2%D6%BE&email=tjjnet@netchina.co.cn&comment=+1%A1%A2%D4%DAWIN 由此可见,如果你的函件程序不能支持所有的MIME编码方式,那么即使双方都使用MIME协议,仍有可能出现乱码。 去除乱码的另一个方法就是选择一种能支持多种编码/解码的软件。这样的软件有不少,但笔者最偏爱的是ESSCode,你可以在www.hotfiles.com找到它。它支持UU、MIME、SHIP、BTOA等多种方案。如果你需要将二进制文件转换为文本文件,可以使用菜单上的UUEncode、MIME-Encode、SHIP-Encode和BTOA-Encode;反之,使用UUDecode、MIME-Decode、SHIP-Decode和BTOA-Decode。ftpmail(使用函件来执行ftp命令)的服务器可能会把大文件分成几个小部分发送给你,而ESSCode支持文件的合并与分解,这样使用起来就很方便了。 仅有这两方面的工作还是不够的,因为ESSCode和函件程序都是根据一定的标志来识别编码方式,但有的函件(如上面提到的InternetinChina函件)没有相应的标志,这样的文件ESSCode不能处理。对于此类文件你需要加上一个标志头。MIME的标志头中影响编码的有三行:第一行是Content-Type,它表明文件的类型,象前面的application/x-zip-compressed表明是一个ZIP压缩文件,text/plain表示普通文本文件;第二行Content-Transfer-Encoding表示编码方式;第三行Content-Disposition表示编码文件的位置。为了解码InternetinChina函件,我们可以先在函件前面加上三行: Content-Type:text/plain;name="iic-l51.txt" Content-Transfer-Encoding:quoted-printable Content-Disposition:inline;filename="iic-l51.txt" 这样处理后,ESSCode就可以正确解码了。这里的iic-l51.txt是我自己起的名字,ESSCode会自动以此名保存解码后的文件。 如果你嫌每次都这样加上标志太麻烦,也可以从我的主页http://www.nease.net/~zealsoft上下载ZealDecoderV1.0,这个程序不需要标志头就可以解码,但它只处理quoted-printable编码的文件。如命令 zdecodeiic-l51iic-l51.txt 可以将iic-l51文件解码为iic-l51.txt。如果使用的引导字符不是“=”,而是“%”,可以使用下面的命令 zdecodeiic-l51iic-l51.txt% 但愿我的这些雕虫小技对你畅游Internet有所帮助。

如果觉得如何消除电子函件的乱码不错,可以推荐给好友哦。
本文Tags:电脑学习 - 操作系统,操作系统原理,操作系统教程,装操作系统,电脑教程,

+评论

☉本站为非营利性站点,所有资源均是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。如果您觉得满意,请购买正版!

联系本站 - 教案中心 - 试题下载 - 教学反思 - 句子大全 - 收藏本站 - 文章阅读 - 全站地图 - 热门专题