Chinaunix首页 | 论坛 | 博客
  • 博客访问: 971046
  • 博文数量: 335
  • 博客积分: 10287
  • 博客等级: 上将
  • 技术积分: 3300
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 15:29
文章分类

全部博文(335)

文章存档

2015年(4)

2014年(15)

2013年(17)

2012年(11)

2011年(12)

2010年(96)

2009年(27)

2008年(34)

2007年(43)

2006年(39)

2005年(37)

我的朋友

分类:

2007-11-02 18:15:31

我们都知道,字符是计算机表达信息的主要方式。它的主体部分是美国信息交换标准码ASCII码。其中包括了计算机常用的字符、可打印符号、控制符号等。但是,传统意义上的ASCII码在表现多国文字、图形声音等二进制文件、信息压缩、信息保密等很多方面存在不足,因此,在ASCII码和扩展ASCII码的基础上,人们又定义了一些新的信息传输和处理过程中的编码和解码方法。

所谓邮件乱码,实际上就是指电子邮件在传输过程中,由于编码和解码的不统一,而导致信息不能被交换和理解。显而易见,要解决邮件乱码的问题,从最根本上就是要找到和编码相统一的解码方法,并在计算机不能自动进行解码的时候,对信息手工解码,以使信息能够被理解。

在下面,本文将针对不同类型的邮件乱码,阐述各自的解决方法。

ROT13

ROT13可能是一种不太常见的编码方式,但由于它比较简单,所以我们就把它放在第一部分来介绍。

注意下面的内容:

Puvan ArgjbexJbeyq

你也许会感觉一头迷雾,不过这就是ROT13的编码方式。它实际上非常简单,就是用字母表里a-m的字符来代替n-z的,反过来用n-z的字符来代替a-m字符。ROT13能通过非常简单的手段使得我们的电子信件不能被直接识别和阅读,也不会被那些匹配程序用通常的方法直接找到。

现在我们用的常用软件大都支持对ROT13的解码。不过下面的网址,也可能会帮上你的忙。

otto.cmr.fsu.edu/~davis_t/rot13.cgi ~niclas/reddwarf/rot13.htm

差点忘了,刚才大家看到的Puvan ArgjbexJbeyq实际上就是China NetworkWorld。

汉字内码不同造成的乱码

由于历史的原因,汉字编码有多种。目前主要流行的编码是GB、BIG5和HZ。很显然,一段用GB码进行编码的信息,是无论如何也不能被BIG5或HZ码进行正确解码的。

对于GB码和BIG5码之间进行转换的程序有很多,诸如南极星、中文之星、微软的IE、OE等都能做到。但对于HZ→GB码之间转换的程序,相比之下就要少多了。下面我就为大家介绍一个小方法来解决。把由HZ进行编码的信息拷贝到一个文本文件,然后再用IE浏览器打开它。选则IE的查看→字体→简体中文(HZ),就能很方便的将由HZ编码的信息读出。

当然下面的这些软件,也许会更加好用。

ftpsearch.ntnu.no/cgi-bin/search?query=c2t.zip ftpsearch.ntnu.no/cgi-bin/search?query=hz-20.zip ftpsearch.ntnu.no/cgi-bin/search?query=hc-30.zip

MIME64乱码解决方法

MIME/BASE64 的算法很简单。它首先将需要编码的信息顺序放入一个长度为24位的缓存区,然后将缺少字符的地方补零。再将缓存区切成四个高位在先的部分,用A~Z、a~z、0~9以及“+/”,总共64个字符重新表示。如果输入只有一个或两个字节,那么输出将用等号“=”补足。这可以避免附加的信息造成编码混乱。一封含有MIME64编码方式的邮件通常会包含下面的内容:“This is a multi-part message in MIME format.”

如果你发现你的邮件乱码中也有这样的内容,你就可以通过下面的方法对其进行解码。将邮件原文存成后缀为UUE的文件。然后让 Winzip 自动识别并恢复。推荐使用 WinZip 6.3 SR-1 或更高的版本。当然也可以试试将文件后缀改为 EML ,然后由OutLook Express打开,应该也能够进行自动解码的。

UUENCODE编码

UUENCODE编码方式通常用于邮件中的附件。它的解码方式也很简单。将UUENCODE编码信息保存成扩展名为UUE的文件,然后让Winzip自动识别并恢复。当然依旧推荐WinZip 6.3 SR-1或以上版本。

Unicode

本文不打算在这里讨论有关Unicode的编码方式,有兴趣的读者可以看一下下面的这个网址:

这里我们仅仅讨论一下UTF-7、UTF-8造成的汉字乱码的解决方法。

UTF,是Transformation Format of Unicode 的缩写,本意为Unicode 转换码。在PWin98里,微软的专家将之称为 “通用字符”。

UTF-7(RFC1642,-editor.org)是一种通过7位的ASCII编码对Unicode码进行转换的编码。它的设计目的是为了在只能传递 7 位编码的邮件网关中传递信息。UTF-7对英语字母、数字和常见符号直接显示,而对其他符号(比如汉字)则用修正的Base64进行编码。通过使用+和-号来控制编码过程的开始和暂停。所以乱码中如果夹有英文单词,并且相伴有+号和-号,就有可能是 UTF-7 编码。例如有这样一封邮件(前面的行号是后加的):

1:From: "=?utf-7?B?K2V5aDdLQS0=?=" <whoami@263.net> 2:Subject: =?utf-7?B?K2YxRiszRTRXZFV3LQ==?= 3:kK5O9k5xeAF2hI13VuBTyonjUbNbiWzV- 我们需要在第三行处添加下面的信息: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-7"

将原来的第3行改变成第5行。

然后将这部分信息另存为扩展名为EML的文件,通过双击它启动 OutLook Express。看到了这封信的内容了吧。

UTF-8和UTF-7极为相似,只是要加入的内容需要改成:

MIME-Version:1.0 Content-type: text/plain; charset="utf-8";

当然,不要再拿上面的邮件内容解码了,因为它是通过UTF-7编码的。

好了,我们的内容就进行到这里。当然,在这么一篇小小的文章里,不太可能将数十种正规或非正规编码方式所产生出的众多乱码形式一一解决。我们只是希望你在读完本文后,不再对邮件乱码束手无策。

阅读(1744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~