我在取得邮件Subject的时候得到的数据是:=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=请问如何进行解码?

解决方案 »

  1.   

    我也遇到这样的问题,但是只有在收yahoo邮件,而且邮件主题是中文时才会出现乱码
    等待高手解决!
      

  2.   

    首先用 ? 分割邮件标题编码
    ‘B’ 为base64编码,所以先解码Base64解码,然后在用‘SHIFT_JIS’字符集显示实际的标题内容。这样就没有乱码了。
    大概是这样吧。你自己在改改byte[] bytes = System.Convert.FromBase64String(s);
    string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
      

  3.   

    这样是不行的,我现在就是这样写的,现在的问题是SUBJECT本来是一部分,现在通过SHIFT_JIS编码后,=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=这个样子,我如何解码成一个完整的字符串, 如果我将 其分为两部分来处理的话,就会多一个 "\0" 在里面, 而且得到的字符串也不是我要的完正的字符串.
      

  4.   

    同样的问题!我邮件的主题是“有附件”。邮件主题部分数据如下:Subject:=?gb2312?B?KMjw0MfM4cq+LbTL08q8/r/JxNzKx8Csu/jTyrz+KQ==?==?gb2312?B?09C4vbz+?=
    有谁知道如何解码?会的和我联系,我另给分。
      

  5.   

    同样的问题!
    我的是:Subject:=?GB2312?B?RndkOiDH89awvPLA+G==?=
    老兄这个也不行。string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
    我用Encoding.GetEncoding("GB2312").GetString()还是不行。
    但我设断点看当前主题值时又是正常的。
      

  6.   

    于娜小姐基本说的没错
    =?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=
    =============================================================
    =?XXXXX?B? 代表一个编码的头 ,这部分于娜说对了
    g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?= //这里注意需要把最后一个?=去掉再解码
      

  7.   

    TO: hdt(倦怠)  根据 于娜小姐 说的 按一般的的处理是没有问题 , 现在的问题就在于SHIFT_JIS的编码不是完全按照这个规则进行编码的.如果要将 
       =?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=
    进行正确的解码的话,    要先将 g2WDWINng4GB 从Base64字符串转换成 Byte数组 (Byte1), 
       再将 [ 转换成Byte 追加到 Byte1中,
       然后将 g4uRgYr6jaGT+g== 从Base64字符串转换成Byte数组追加到Byte1中,
       以上处理完成后, 再对行来的 Byte数组Byte1进行解码,才能得到正确的结果. 
     
      

  8.   

    欢迎各界.Net初学&高手们加入Q群12757054(要经常在线)
    希望大家的问题能够及时的得到解决.
      

  9.   

    楼主xinyu_1980 (心雨) 你好,我想问下如果想构建一个企业邮局平台,应该选用什么系统作为基础核心,然后再上面做扩展性的开发,基础核心自己写不太现实
      

  10.   

    byte[] bytes = System.Convert.FromBase64String(s);
    string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
      

  11.   

    =?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=B base64, 
    ‘SHIFT_JIS’  display infact string 
    ?  split title g4uRgYr6jaGT+g   this is the title .
    g2WDWINng4GB    convert.to byteArray;
    g4uRgYr6jaGT+g  use foreach() add of bytearray's.
    byteArray of encoding. use encoding.getEncoding().getstring()
                            ok
      

  12.   

    我也不是够建什么企业邮局了,只是一个邮件收取的系统,我也是帮别人调查的, 后来朋友说是他们用的是ISO-2202-JP 所以后来我也就没有再深入的调查