代码改变世界

jmail4.4pro接收邮件,标题出现乱码

2013-07-03 16:14  yadongh  阅读(239)  评论(0)    收藏  举报

 

方法如下:

private static string DecodeStr(string str)
{
//可以往这里添加更多的编码,比如GB2312等等

System.Collections.ArrayList encodingList = new System.Collections.ArrayList();
encodingList.Add("ISO-2022-JP");
encodingList.Add("UTF-8");
encodingList.Add("GB2312");
string encodingStr = "";

 

string result = "";
string[] sArr = null;

if (!string.IsNullOrEmpty(str))
{
for (int i = 0; i < encodingList.Count; i++)
{
if (str.ToUpper().Contains(encodingList[i].ToString()))
{
sArr = str.Split('?');
encodingStr = encodingList[i].ToString();
}
}
}
if (sArr.Length > 0)
{
byte[] b = Convert.FromBase64CharArray(sArr[3].ToCharArray(), 0, sArr[3].ToCharArray().Length);
System.Text.Encoding en = System.Text.Encoding.GetEncoding(encodingStr);
result = en.GetString(b);
}
return result;

}

 

调用时:

//message即是你获得邮件,类型是jmail.Message

DecodeStr(message.Headers.GetHeader("Subject"))

返回的string即是标题