C# - MAIL 的 Encoding & FromBase64String

摘要: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);
        }
    }
}

結果: