邮件乱码知多少
巧巧电脑网络 2007-10-03 CPCW 赵伯青  收藏此文 
大 中 小分享到 QQ空间 人人网 开心网 豆瓣 新浪微博 腾讯微博 更多 0
对于常上网的朋友来说,收发是最平常不过事情了,时间久了,相信你也曾收到过一些奇奇怪怪的字符,不知道是什么意思,令人烦恼不已。特别是一些新网民,更是不知所措,或是弃之不理,或是当作垃圾邮件干脆删除。
  对于常上网的朋友来说,收发是最平常不过事情了,时间久了,相信你也曾收到过一些奇奇怪怪的字符,不知道是什么意思,令人烦恼不已。特别是一些新网民,更是不知所措,或是弃之不理,或是当作垃圾邮件干脆删除,错过了一些重要的信息。所以我们应当学会怎样正确处理这些乱码邮件。
  为了能够正确处理这些乱码邮件,必须了解乱码产生的原因。出现乱码的原因很多,最主要有二方面原因。
传输机制不同
由于INTERNET的某些邮件服务器不支持8位(非ASCII格式)传输造成的。具体来说,在直接发送中文双字节或二进制等非ASCII码格式(如中文双字节、图片文件.JPG、可执行文件.EXE、压缩文件.ZIP等二进制文件)时,由于主机无法处理,便把信件中的每一字符的第八位都截去,造成邮件失真或损坏,接收到的邮件便是一堆乱码。此种乱码不可恢复,只能重发。
邮件编码不同
  邮于各种软件的默认配置不同,收件和发件人自己的选项也各不相同,所以在收编码的信件后,系统不能自动识别编码方法,系统不能自动解码,这样当你查看信件的内容时,就会出现所谓的乱码,使收件人无法阅读该文件。
解决方法:
传输机制不同的解决方法。
  在发送8位格式的文体文件时,必须事先进行编码,将文件转换成7位ASCII码或更少位数的邮件之后,再发送出去,收件人在收到邮件后,利用专用的解码软件如WINZIP7.0、XFERP
RO2.0等进行解码,这样,便可阅读了。
常见的编码方式有:
UUENCODE编码
这是很早以前在UNIX上就有的编码程序,主要用都集中在UNIX环境的使用者中,目前使用者已很少,其主要特征是:编码以BEGIN开头,以END结尾。且 旧厦恳恍凶帜付家杂⑽淖帜窶开头。
MINE/BASE64编码
这种编码方式是将三个字节(8位)用4个字节(6位)表示,由于编码后内容是6位的,因此可以避免被截去,其主要特征是有CONTENT-TYPE、CHATSET、CONTENT-TRANSFER-ENCODEING:64这几个标志。
QUTOE-PRINTABLE编码
  由于用这种格式表示信息,其内容都是以ASCII码表示的字符,因此可以避免被截去。其主
要特征是有大量的“=”和大量的英文字母。
编码不同的解决方法。
  对于编码不同造成的乱码,应首先试一试转换编码的方法。因为这种编码大多出现在中文邮件上。因此,当乱码出现时首先应当检查编码方式是否为“简体中文(GB2312)”,如果不是可用鼠标点取“查看”菜单下的“编码”选项,选中“简体中文(GB2312)”编码方式,如果不行,切换成其他编码试试,通常问题都能得到解决。
避免乱码的几点建议:
为减少收信时出现乱码,建议将字体的“国际设置”定义为“简体中文(2312)”,以OUTLOOKPRESS为例,具体方法如下:
用鼠标点取“工具”菜单下的“选项”选项。
选择“阅读”标签,并单击“国际设置”按钮。
选中“为接收所有邮件使用默认编码,单击确定按钮。
尽量利用附件功能发送文件。
  用附件发送邮件时,附加文件可以自动进行“BASE64”方式编码,收件人收到信后,打开附件文件,文件自动进行解码。因此强烈建议你采用这种方式发送中文类邮件。
编码文件应添加足够的“信头”信息。
  在直接发送中文双字节或二进制等非ASCII码格式邮件时,如果对方的邮件服务器不能处理第八位数,则需要对文件进行编码,并添加足够的“信头”信息。建议对“UUENCODE”编码用UUENCODE ENCODING作信头,对“MINE/BASE64”编码用BASE64 ENCODING作信头,对“QUTOE-PRINTABLE编码”用PRINTABLE ENCODING作信头。
拓展阅读:用VB实现自己的邮件“自己发”
VB中有两个邮件收发功能的核心控件:MAPI会话和MAPI消息控件。MAPI会话控件用于建立和控制一个Microsoft Mail会话,MAPI消息控件用于创建和收发邮件消息。此外,程序必须运行在采用MAPI的消息系统(如Microsoft Exchange、Outlook等)的环境中。 窗体设计 打开VB,在Form1中加入5个文本框。
邮件乱码解析
乱码文字生成        收到远方友人的,但当您满怀欣喜打开的时候,面对的却是一堆乱码,扫兴之余更是着急。的乱码是困扰中文用户一件头痛的事。本文就电子软件的常见编码方式和解决方式作一介绍。
        要解决乱码的问题,我们很有必要了解一下是如何进行编码的,以便可以“对症下药”,尽快解决问题。由于历史原因,E-mail只允许传送字符,而且是7位字符的E-mail网关时,毫无疑问地会出现问题。这些7位的E-mail网关把汉字内码第八位的1全变成了0,于是形成了一些不可读的文字。好在现在越来越多的E梞ail网关已能处理8位字符,国内更是如此。所以,直接传送中文问题不大,但是要和国外的朋友通信就另当别论了。
        为了解决E-mail传输8位字符以及二进制文件的问题,出现了各种各样的编码方式,概括地可分为对E-mail正文的编码和对E-mail附带文件的编码两类。对E梞ail正文的编码有Usenet上专门针对中文的HZ码等,对E-mail附带文件的编码则有UUENCODE,BINBEX等。而在Internet上标准的编码方式却有MIME(Multi-purpose Internet Mail Extensions多用途Internet邮件扩展),它对E-mail传送多媒体信息(诸如声音、图像、二进制文件等)进行
了一系列详细而复杂的定义,包括了对E梞ail正文的编码和对E-mail的附带文件的编码。现在绝大多数的软件如ENDORA、Foxmail和THE-BAT!等都支持MIME编码方式。
        纯中文方式编码:这就是我们通常看到的一般文本,没有经过任何编码,任何软件都能准确识别,因而不会出现任何乱码(在指定了正确的字符集后)。
        UUENCODE编码:一些较老的邮件服务器上这种编码使用较多,目前的Ftp Mail等服务器也是使用此编码(如MrCool下载的文件等)。UUENCODE编码的主要特征是编码首行由BeginXXX开始,结束一行为End,且通常其中的每一行开始均为“M”,只要有了以上几个特征,就能确定是UUENCODE编码。
        QUOTED-PRINTABLE编码:这种编码是将7FH以上的ASCII字符(即汉字)用它对应的文字串表达出来,即如一个ASCII编码为0ABH的字符,将用=AB来代表它。它的典型特征是文本中有大量的这种用“=”来构成的符号,即=XX=XX=XX等,只要有这种符号,即可确认。
        BASE64编码:BASE64编码的判断较复杂,但它也有一个明显的特征,由于BASE64
是通过“=”来实现对齐,因而假如你在一个排列非常规则(每行字符数相同,一般为63个),没有任何可识别内容的编码,且若最后一行未满并有一至三个“=”之类字符时即可确认它是BASE64编码;特别的一点是,“.”不属于BASE64编码后的字符,也就是说一个用BASE64正确编码后的字符,也就是说一个用BASE64下确编码后的信件将决不可能在信体部分有“.”出现,否则就是误码。
        HZ编码:这是国外的中国人发明的一种编者按码方式,它把汉字的最高位去掉,然后用一特定符号来表明哪些编码经过了处理。这种编码也极易识别:在信的内容中通常会有这样的一组符号:“~{”和“}~”,其中的内容是不可读的(乱码),而在这一组分界符外的都是可读的英文字符。
        Bit7码:这并非一种编码,而是网络传输误码。它是由于网络不支持8位传输引起的,通常在局域网的接入方案中较为常见。它跟HZ编码类似,只是没有标明哪些内容是截去了最高位的。识别办法跟随HZ类似,如果一段信件中英文部分是正常的话,即为此种误码。这种误码无法解码,只能要求对方用7位编码(如以上的各种编码)重新发送。
E-mail乱码的种类产生原因及其方法:
        1 中文内码不一致的“乱码”,最为常见的是BIG5码与GB码。征状为信件内容有空格、日文、偏旁部首、个别汉字等等。其原因是这种乱码是由于发信的计算机的中文内码不是国标码(GB)所造成的,如香港、台湾地区和海外使用的汉字系统多数是BIG5码。如果用此内码发送中文信件,国内使用的国标码的用户阅读时就会出现乱码现象。解决方法之一是:在系统上加挂多内码语言平台,如四通利方、南极星及两岸通都是不错的选取择。解决方法之二:选取用支持BIG5码与GB码转换功能的E梞ail软件,如Foxmail、方正飞扬等,缺点是有效果不很理想。
        2 部分乱码:征状为收到的邮件中有句子能正常显示,但是有的句子仍出现乱码。原因之一是发信人在输入汉字时不留意输出入了某个控制键或者折行不正确,产生半个汉字的现象。众所周知,在计算机语言里,汉字是由两个字节组成的,如果不正确地折行,前一行最后一个字的前半部分留在本行,而后半部分则被折到了下一行。结果,后半部分与后面一个字的前半部分组成了一个新的汉字,如此类推,于是整行汉字就成了天书。解决方法:将邮件保存,用Word、WPS97等文字处理软件在汉字乱码之间插入一个空格或者删除一个乱码字符。这样,邮件内容虽然少了一个字,但剩下的部分恢复正常,况且我们凭上下文也可基本猜到这个字了。原因之二:E-mail软件(尤其是英文软件)以及邮件传输过程中也可能造
成这种不正常的折行。英文E梞ail软件进行折行是依据英文单词间的空格来判断的,但中文却没有空格。因此,E梞ail在进行折行处理时,出错就在所难免了。而在E-mail的传输过程中,E-mail网关对长行的处理方法也不尽相同,有时会使行末的半个汉字丢失,从而造成半汉字现象。解决方法:要彻底解决这个问题,最好是在每个汉字后加入空格,也就是利用汉字输入法字间加空的功能,这样就不会出现错误的折行了。现在的中文系统如RichWin等,都有提供了字间加空的选择。原因三:有时汉字系统调用出错也会造成这种乱码,盗版的汉字平台出现这方面问题的概率较高。解决方法:使用正版软件,或者将系统内码先改为BIG5,这时看到全文乱码,再将内码改为国标码即可;或者重新调用汉字系统。