邮件Subject的问题, 急在线等

xinyu_1980 2006-12-09 01:01:43
我在取得邮件Subject的时候得到的数据是:

=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=

请问如何进行解码?
...全文
530 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
盗奶的夜猫 2006-12-16
  • 打赏
  • 举报
回复
楼主xinyu_1980 (心雨) 你好,我想问下如果想构建一个企业邮局平台,应该选用什么系统作为基础核心,然后再上面做扩展性的开发,基础核心自己写不太现实
xinyu_1980 2006-12-16
  • 打赏
  • 举报
回复
不过,大家有兴趣的话,我可以再开贴继续讨论.
xinyu_1980 2006-12-16
  • 打赏
  • 举报
回复
我也不是够建什么企业邮局了,只是一个邮件收取的系统,

我也是帮别人调查的, 后来朋友说是他们用的是ISO-2202-JP

所以后来我也就没有再深入的调查
feifeiyaqi3 2006-12-16
  • 打赏
  • 举报
回复
你解决了吗
feifeiyaqi3 2006-12-16
  • 打赏
  • 举报
回复
=?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


feifeiyaqi3 2006-12-16
  • 打赏
  • 举报
回复
byte[] bytes = System.Convert.FromBase64String(s);
string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
nijiaze 2006-12-14
  • 打赏
  • 举报
回复
欢迎各界.Net初学&高手们加入Q群12757054(要经常在线)
希望大家的问题能够及时的得到解决.
chenjunhui 2006-12-13
  • 打赏
  • 举报
回复
顶是硬道理
真相重于对错 2006-12-13
  • 打赏
  • 举报
回复
于娜小姐基本说的没错
=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=
=============================================================
=?XXXXX?B? 代表一个编码的头 ,这部分于娜说对了
g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?= //这里注意需要把最后一个?=去掉再解码


Csharp110 2006-12-13
  • 打赏
  • 举报
回复
up
xinyu_1980 2006-12-13
  • 打赏
  • 举报
回复
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进行解码,

才能得到正确的结果.



Qim 2006-12-13
  • 打赏
  • 举报
回复
mark
ralphchen 2006-12-11
  • 打赏
  • 举报
回复
同样的问题!我邮件的主题是“有附件”。邮件主题部分数据如下:Subject:=?gb2312?B?KMjw0MfM4cq+LbTL08q8/r/JxNzKx8Csu/jTyrz+KQ==?==?gb2312?B?09C4vbz+?=
有谁知道如何解码?会的和我联系,我另给分。
yhmodem 2006-12-11
  • 打赏
  • 举报
回复
同样的问题!
我的是:Subject:=?GB2312?B?RndkOiDH89awvPLA+G==?=
老兄这个也不行。string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
我用Encoding.GetEncoding("GB2312").GetString()还是不行。
但我设断点看当前主题值时又是正常的。
xinyu_1980 2006-12-10
  • 打赏
  • 举报
回复
这样是不行的,我现在就是这样写的,

现在的问题是SUBJECT本来是一部分,现在通过SHIFT_JIS编码后,

=?SHIFT_JIS?B?g2WDWINng4GB?=[=?SHIFT_JIS?B?g4uRgYr6jaGT+g==?=

这个样子,我如何解码成一个完整的字符串,

如果我将 其分为两部分来处理的话,就会多一个 "\0" 在里面,

而且得到的字符串也不是我要的完正的字符串.
于娜 2006-12-10
  • 打赏
  • 举报
回复
首先用 ? 分割邮件标题编码


‘B’ 为base64编码,所以先解码Base64解码,然后在用‘SHIFT_JIS’字符集显示实际的标题内容。这样就没有乱码了。


大概是这样吧。你自己在改改

byte[] bytes = System.Convert.FromBase64String(s);
string resultText = Encoding.GetEncoding("SHIFT_JIS").GetString(bytes, 0, bytes.Length);
devilok 2006-12-09
  • 打赏
  • 举报
回复
我也遇到这样的问题,但是只有在收yahoo邮件,而且邮件主题是中文时才会出现乱码
等待高手解决!
xinyu_1980 2006-12-09
  • 打赏
  • 举报
回复
自己UP

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧