=?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
等待高手解决!
‘B’ 为base64编码,所以先解码Base64解码,然后在用‘SHIFT_JIS’字符集显示实际的标题内容。这样就没有乱码了。
大概是这样吧。你自己在改改byte[] bytes = System.Convert.FromBase64String(s);
string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
有谁知道如何解码?会的和我联系,我另给分。
我的是:Subject:=?GB2312?B?RndkOiDH89awvPLA+G==?=
老兄这个也不行。string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
我用Encoding.GetEncoding("GB2312").GetString()还是不行。
但我设断点看当前主题值时又是正常的。
=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=
=============================================================
=?XXXXX?B? 代表一个编码的头 ,这部分于娜说对了
g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?= //这里注意需要把最后一个?=去掉再解码
=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=
进行正确的解码的话, 要先将 g2WDWINng4GB 从Base64字符串转换成 Byte数组 (Byte1),
再将 [ 转换成Byte 追加到 Byte1中,
然后将 g4uRgYr6jaGT+g== 从Base64字符串转换成Byte数组追加到Byte1中,
以上处理完成后, 再对行来的 Byte数组Byte1进行解码,才能得到正确的结果.
希望大家的问题能够及时的得到解决.
string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
‘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