SmtpClient 主旨中文編碼亂問題

rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

SmtpClient 主旨中文編碼亂問題

文章rusli » 週二 9月 13, 2011 11:31 am

[syntax="csharp"]
public static class StringExtension
{
public static string ToBase64String(this string subject, string encoding)
{
return Convert.ToBase64String(Encoding.GetEncoding(encoding).GetBytes(subject));
}
}
[/syntax]

[syntax="csharp"]

string testMail = "rusli_wu@xxx.com.tw";
string subject = @"小堃모발 이식 비용堃一杯を求めて ラーメンは進化し続ける雲端時代來臨,心動不如馬上行動,搶先體驗 XXXXXX 服務!";
string body = @"小堃모발 이식 비용堃一杯を求めて ラーメンは進化し続ける雲端時代來臨,心動不如馬上行動,搶先體驗 XXXXXX 服務!";


//// B 表示Base64 編碼
//// Q 表示QP編碼 <<註1>>
sub = string.Format("=?UTF-8?B?{0}?=", Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-8").GetBytes(subject)));

var mailMessage = new MailMessage
{
From = new MailAddress(testMail), ////寄件者
BodyEncoding = Encoding.GetEncoding("UTF-8"),
//HeadersEncoding = Encoding.GetEncoding("GB2312"), //// 設定它沒甚麼鳥用
SubjectEncoding = Encoding.ASCII, //// Tony's hack 重點
IsBodyHtml = true, //// 支援Html 內容
Subject = sub,
Body = body,
};

[/syntax]


註1:
QP 編碼
var sub = "=?UTF-8?Q?=D0=A1=88=D2=88=D2=D2=BB=B1=AD=A4=F2=C7=F3=A4=E1=A4=C6=A5=E9=A9`=A5=E1=A5=F3=A4=CF=DFM=BB=AF=A4=B7=BEA=A4=B1=A4=EB=EB=85=B6=CB=95r=B4=FA=81=ED=C5R=A3=AC=D0=C4=84=D3=B2=BB=C8=E7=F1R=C9=CF=D0=D0=84=D3=A3=AC=93=8C=CF=C8=F3w=F2=9E_VIdegree_=90=DB=EE=99=BF=CD=B7=FE=84=D5=A3=A1?=";

rusli
Site Admin
文章: 212
註冊時間: 週三 7月 07, 2010 9:49 pm

裝了 FW 4.5 必須改成如下

文章rusli » 週四 9月 06, 2012 2:41 pm

[syntax="csharp"]
sub = string.Format("=?UTF-8?B?...略.....);
//改成
sub = string.Format(" =?UTF-8?B?...略.....);
[/syntax]


回到「C#」

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客