摘要:C# - MAIL 的 Encoding & FromBase64String
在解析 E-Mail 的時候,往往主旨就是第一個難關,因為有的 Mail 的主旨一看就不是正常的文字,再加上又要花時間去解析那不就又更OOXX了。
不過,若有找過 RFC 的文章的話,那或許對於這個問題,就會有一點頭緒與明燈嚕,用以下的字串來稍稍說明一下...
字串:
=?big5?B?W01WUF0gp96zTrjqt70gZnJvbSBNVlAgcHJpdmF0ZSBuZXdzZ3JvdXA=?=
?big5?:BIG5 碼
B?:BASE64編碼
內容:W01WUF0gp96zTrjqt70gZnJvbSBNVlAgcHJpdmF0ZSBuZXdzZ3JvdXA=
以下以範例來作呈現:
畫面:
Code:
namespace WindowsFormsApplication1
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnExec_Click(object sender, EventArgs e)
{
/*三組字串
=?big5?B?W01WUF0gp96zTrjqt70gZnJvbSBNVlAgcHJpdmF0ZSBuZXdzZ3JvdXA=?=
=?gb2312?B?S0BNUyDpX7Bs7ZjQ8g==?=
=?utf-8?b?N+aciOS7veaVsOaNruW6k+W6lOeUqOeoi+W6j+W8gOWPkeS6uuWRmOaWsOmXu+W/q+iurw==?=
*/
string str1 = "W01WUF0gp96zTrjqt70gZnJvbSBNVlAgcHJpdmF0ZSBuZXdzZ3JvdXA=";
string str2 = "S0BNUyDpX7Bs7ZjQ8g==";
string str3 = "N+aciOS7veaVsOaNruW6k+W6lOeUqOeoi+W6j+W8gOWPkeS6uuWRmOaWsOmXu+W/q+iurw==";
string strParser1 = Encoding.GetEncoding("big5").GetString(Convert.FromBase64String(str1));
string strParser2 = Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(str2));
string strParser3 = Encoding.GetEncoding("utf-8").GetString(Convert.FromBase64String(str3));
txtResult.AppendText(strParser1 + Environment.NewLine);
txtResult.AppendText(strParser2 + Environment.NewLine);
txtResult.AppendText(strParser3 + Environment.NewLine);
}
}
}
結果: