private String deCode(String strSrc)
{
int start=strSrc.IndexOf("=?GB2312?");
if (start==-1)
{
start=strSrc.IndexOf("=?gb2312?");
}
if(start>=0)
{
String strHead=strSrc.Substring(0,start);
String strMethod=strSrc.Substring(start+9,1);
strSrc=strSrc.Substring(start+11);
int end=strSrc.IndexOf("?=");
if (end==-1)
{
end=strSrc.Length;
}
String strFoot=strSrc.Substring(end+2,strSrc.Length-end-2);
strSrc=strSrc.Substring(0,end);
if(strMethod=="B")
strSrc=strHead+deCodeB64(strSrc)+strFoot;
else
{
if(strMethod=="Q")
strSrc=strHead+deCodeQP(strSrc)+strFoot;
else
strSrc=strHead+strSrc+strFoot;
}
start=strSrc.IndexOf("=?GB2312?");
if(start==-1)
{
start=strSrc.IndexOf("=?gb2312?");
}
if(start>=0)
strSrc=deCode(strSrc);
}
return strSrc;
}
/*Base64 解码*/
private String deCodeB64(String strSrc)
{
try
{
if(strSrc!="")
{
byte[] by=Convert.FromBase64String(strSrc);
strSrc=Encoding.Default.GetString(by);
}
}
catch(Exception ex)
{return ex.ToString();}
return strSrc;
}
{
int start=strSrc.IndexOf("=?GB2312?");
if (start==-1)
{
start=strSrc.IndexOf("=?gb2312?");
}
if(start>=0)
{
String strHead=strSrc.Substring(0,start);
String strMethod=strSrc.Substring(start+9,1);
strSrc=strSrc.Substring(start+11);
int end=strSrc.IndexOf("?=");
if (end==-1)
{
end=strSrc.Length;
}
String strFoot=strSrc.Substring(end+2,strSrc.Length-end-2);
strSrc=strSrc.Substring(0,end);
if(strMethod=="B")
strSrc=strHead+deCodeB64(strSrc)+strFoot;
else
{
if(strMethod=="Q")
strSrc=strHead+deCodeQP(strSrc)+strFoot;
else
strSrc=strHead+strSrc+strFoot;
}
start=strSrc.IndexOf("=?GB2312?");
if(start==-1)
{
start=strSrc.IndexOf("=?gb2312?");
}
if(start>=0)
strSrc=deCode(strSrc);
}
return strSrc;
}
/*Base64 解码*/
private String deCodeB64(String strSrc)
{
try
{
if(strSrc!="")
{
byte[] by=Convert.FromBase64String(strSrc);
strSrc=Encoding.Default.GetString(by);
}
}
catch(Exception ex)
{return ex.ToString();}
return strSrc;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货