我把通过winsock收下来的邮件源码(Base64编码过)保存成文本文件,谁知道怎么把它解码,又源程序吗

解决方案 »

  1.   

    快发给我啊!!谢谢啦 [email protected]
      

  2.   

    From: "=?gb2312?B?1cW66g==?=" <[email protected]>请问"=?gb2312?B?1cW66g==?=" 这一段是用什么编码的???
      

  3.   

    这一段是用Base64编码的
    并且,内码为GB2312
    标题一般是这样的
    "=?"与"?="中间是标题内容,其中"?B?"将内码方式与标题正文分开
    你的例子Base64的编码内容为"1cW66g==",对这个字符串解码即可
      

  4.   

    内码就是编码,而Base64是一种编码算法,还有一种是quoted-printable,不过现在很少用了。GB2312是简体汉字库的一种
    常用的还有BIG5,也就是常说的大五码
    UTF-8这是一种以Unicode方式编码的内码
      

  5.   

    能不能也发给我![email protected]
      

  6.   

    以下的东东可能对你有用
    BASE64编码规则BASE64编码转换原理Base64编码其实是将3个8位字节转换为4个6位字节,( 3*8 = 4*6 = 24 ) 这4个六位字节
    其实仍然是8位,只不过高两位被设置为0. 当一个字节只有6位有效时,它的取值空间为0
    到 2的6次方减1 即63,也就是说被转换的Base64编码的每一个编码的取值空间为(0~63)

    事实上,0~63之间的ASCII码有许多不可见字符,所以应该再做一个映射,映射表为
    ‘A‘ ~ ‘Z‘ ? ASCII(0 ~ 25)
    ‘a’ ~ ‘z‘ ? ASCII(26 ~ 51)
    ‘0’ ~ ‘9‘ ? ASCII(52 ~ 61)
    ‘+‘ ? ASCII(62)
    ‘/‘ ? ASCII(63)
    这样就可以将3个8位字节,转换为4个可见字符。
    具体的字节拆分方法为:(图(画得不好,领会精神 :-))
    aaaaaabb ccccdddd eeffffff
    ~~~~~~~~ ~~~~~~~~ ~~~~~~~~
    字节 1 字节 2 字节 3
    ||
    \/
    00aaaaaa 00bbcccc 00ddddee 00ffffff注:上面的三个字节位原文,下面四个字节为Base64编码,其前两位均为0。
    这样拆分的时候,原文的字节数量应该是3的倍数,当这个条件不能满足时,用全零字节
    补足,转化时Base64编码用=号代替,这就是为什么有些Base64编码以一个或两个等号结
    束的原因,但等号最多有两个,因为:如果F(origin)代表原文的字节数,F(remain)代
    表余数,则
    F(remain) = F(origin) MOD 3 成立。
    所以F(remain)的可能取值为0,1,2.
    如果设 n = [F(origin) – F(remain)] / 3
    当F(remain) = 0 时,恰好转换为4*n个字节的Base64编码。
    当F(remain) = 1 时,由于一个原文字节可以拆分为属于两个Base64编码的字节,为了
    让Base64编码是4的倍数,所以应该为补2个等号。
    当F(remain) = 2 时,由于两个原文字节可以拆分为属于3个Base64编码的字节,同理,
    应该补上一个等号。