Indy中有没有邮件解码的解决方法?(100分)

  • 主题发起人 主题发起人 play123456
  • 开始时间 开始时间
P

play123456

Unregistered / Unconfirmed
GUEST, unregistred user!
去网上查了相关的知识知道邮件中的编码主要由以下这么多种:

邮件中的编码:
由于历史原因,E-mail只允许传送字符,而且是7位字符的E-mail网关时,毫无疑问地会出现问题。这些7位的E-mail网关把汉字内码第八位的1全变成了0,于是形成了一些不可读的文字,进形成了乱码。于是为了便于网络间的通讯,就需要对这些高8位的字符进行编码处理。因此,一个健全的邮件系统就要尽可能多的解出各种编码后的文件。目前比较流行的编码方式有:
1。BASE64编码: 原理是将三个连续的字符(共8*3=24位),平均分成四段,形成四个新的字符,如果最后不够24位,则补零填充。对编码为000000(二进制)的字符用“=“表示,

BASE64编码的判断较复杂,但它也有一个明显的特征,由于BASE64是通过“=”来实现对齐,因而假如你在一个排列非常规则(每行字符数相同,一般为63个),没有任何可识别内容的编码,且若最后一行未满并有一至三个“=”之类字符时即可确认它是BASE64编码;特别的一点是,“.”不属于BASE64编码后的字符,也就是说一个用BASE64正确编码后的字符,也就是说一个用BASE64下确编码后的信件将决不可能在信体部分有“.”出现,否则就是误码。

2.QUOTED-PRINTABLE编码:这种编码是将7FH以上的ASCII字符(即汉字)用它对应的文字串表达出来,即如一个ASCII编码为0ABH的字符,将用=AB来代表它。它的典型特征是文本中有大量的这种用“=”来构成的符号,即=XX=XX=XX等,只要有这种符号,即可确认。

以上的两种编码是最流行的两种。还存在的其他编码有:
3. UUENCODE编码:一些较老的邮件服务器上这种编码使用较多,目前的Ftp Mail等服务器也是使用此编码(如MrCool下载的文件等)。UUENCODE编码的主要特征是编码首行由BeginXXX开始,结束一行为End,且通常其中的每一行开始均为“M”,只要有了以上几个特征,就能确定是UUENCODE编码。

4. HZ编码:这是国外的中国人发明的一种编者按码方式,它把汉字的最高位去掉,然后用一特定符号来表明哪些编码经过了处理。这种编码也极易识别:在信的内容中通常会有这样的一组符号:“~{”和“}~”,其中的内容是不可读的(乱码),而在这一组分界符外的都是可读的英文字符。
5. Bit7码:这并非一种编码,而是网络传输误码。它是由于网络不支持8位传输引起的,通常在局域网的接入方案中较为常见。它跟HZ编码类似,只是没有标明哪些内容是截去了最高位的。识别办法跟随HZ类似,如果一段信件中英文部分是正常的话,即为此种误码。这种误码无法解码,只能要求对方用7位编码(如以上的各种编码)重新发送。

6.Bit8码:也就是带有高8为的编码,它对邮件服务器只是起到声明的作用。


网上能够查到一些解码方法,但Indy系列中应该有完整的解决方案吧,在哪里呢?哪位大侠知道?无论Indy10还是Indy9都可以。谢谢!
 
后退
顶部