最近再做一个邮件管理客户端,使用了第三方的LumiSoft.Net.POP3来收取邮件。发现唯独mailto这里得到的是乱码,如下:
=?utf-8?B?6JKLIOa1qemSpg==?= <gotojhq@gmail.com>
在网上查找了一番才知道,=?utf-8?B?6JKLIOa1qemSpg==?=这串东东表示的是采用UTF8编码,传输编码为Base64,所以需要先将密文用Base64编码取出,再使用UTF8编码来读取。下面就写个小方法来完成解码工作:
/// <summary>
/// 对Mailto字符串进行解码(=?utf-8?B?6JKLIOa1qemSpg==?=)
/// </summary>
/// <param name="StrSource">待解码的密文</param>
/// <return>成功返回明文,失败返回源串</return>
public string DecodeMailto(string StrSource){
try{
string[] strarr = StrSource.Split('?');
byte[] bytes = Convert.FromBase64String(strarr[3]);
return Encoding.UTF8.GetString(bytes);
}catch{
return StrSource;
}
}