Email是Internet上使用的一项服务,它通过数字化的方式进行信件的传送。E-mail的实现方式为:发送方将邮件发至对方主机(或就近主机),然后由主机经过一定的传送路径转发至指定的接收方主机上存储,再由接收方收取阅读,是一种非交互式的存储转发技术。该过程中使用了多种技术协议,才保证邮件的正确无误地传递,如果使用中双方基于不同的邮件协议,就可能会造成邮件中出现乱码的情况。
SMTP(SimpleMessageTransferProtocol)简单邮件传输协议,是基于TCP/IP网络的协议,描述了一个邮件报文的格式及当它们传输时如何处理这些报文,是一种利用网络交换文字信息的非交互式技术,用于主机之间的电子邮件交换。利用SMTP,Internet的主机就可收发由普通西文字符组成的文本邮件。
为了传送声音、图像等多媒体二进制数据,还必须将这些数据经过特殊的非字符编码,于是,就出现了MIME(MultipurposeInternetMailExtensionprotocol)多用途的网络邮件扩充协议。该系统可以处理常规的报文(普通西文文本)和声像等二进制数据。MIME有Base64和QP(Quote-Printable)两种编码方式。Base64是一种通用的方法:把3个Byte的数据用4个Byte表示,这样,这4个Byte中,实际用到的都只有前面6个bit,这样就不存在只能传输7个bit的字符问题了;QP方式:把一个8bit的字符用两个16进制数值表示,然后在前面加“Κ”。所以我们有时在收到的邮件中会看到经过QP编码后的文件内容为:ΚB3ΚC2ΚBFΚA1ΚC7ΚE5ΚA3ΚACΚC4ΚFAΚBAΚC3ΚA3ΚA1等。
最早处理二进制数据的编码为Uuen code,是Unix系统的UU编码方式,其解码为Undecode,它们作为Unix系统主机之间的拷贝协议UUCP的一部分开发出来。
我们知道,ASCII编码为7位有效码,而非ASCII的如汉字则采用双字节表达一个汉字,通过字节较高位b7置1来实现。但由于历史形成的原因,Internet上电子邮件主要处理7bit文本,而且一些服务器或网关可能限制8bit传输,这对ASCII字符不会影响;其它非ASCII数据,则必须使用7bit将邮件编码后再发送,否则邮件在传送过程中,如果其较高位被过滤掉,则必然为乱码,而且该邮件的接收方也是无法还原的。由于祖国大陆和港台地区对汉字编码的不统一,祖国大陆使用GB码,港台使用Big5码,这样就造成使用对方交换信息时出现乱码,只有通过将对方内码转换后,才能正确显示。
我们在上网使用OutlookExpress收发电子邮件时,经常需使用到各种编码的文字,主要有简体中文的GB2312码和HZ码(使用频率比较高的两种编码),以及通用字符UTF-7和UTF-8、西欧字符等,如果电子邮件软件中没有内置BIG5编码,那收到BIG5编码的电子邮件时就会出现乱码,在电子邮件传输过程中,可能会发生误码或出现乱码,电子邮件传送的内容我们就无法认识。现在有很多软件可以解决这个问题,其中乱码察看器就是其中功能比较强的一个。
乱码察看器支持MIME/Base64、Quoted-Printable、HZ和UUCode四种形式的编码和解码,有改进的混合乱码识别算法(多种乱码混合在一起时可以正确识别不同乱码),单键解码功能。只要选中需要查看的乱码文本(如果不选中任何内容,则会自动全选),然后按下预先设定的热键(默认为F7),配合改进的识别算法,就可以较好地将这些乱码转换成正常的文本内容,自动识别BIG5码(将BIG5码转成GB码)繁体中文和简体中文相互转换(Windows2000下使用更方便)、实时监视剪贴板自动解码、智能弹出等。此外,还可以更改背景颜色及默认字体。在版本中新增了某些HTML对中文进行编码所形成乱码的识别和支持;修正了程序运行时Windows无法关机的问题;修正了一些小Bug。