System.Text.StringBuilder sb = new StringBuilder();
System.IO.StringWriter swRead = new StringWriter(sb);
Server.Execute(html, swRead);
//这里是读取一个文件
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("[email protected]", "******");
client.DeliveryMethod = SmtpDeliveryMethod.Network; System.Net.Mail.MailMessage message = new MailMessage("[email protected]", "[email protected]", "test", sb.ToString());
message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
message.IsBodyHtml = true;
client.Send(message);
}以上在邮件里面是中文字都变成了,也看不懂是什么字
像这些“骞垮窞澶╁”谢谢
System.IO.StringWriter swRead = new StringWriter(sb);
Server.Execute(html, swRead);
//这里是读取一个文件
System.Net.Mail.SmtpClient client = new SmtpClient("smtp.163.com");
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential("[email protected]", "******");
client.DeliveryMethod = SmtpDeliveryMethod.Network; System.Net.Mail.MailMessage message = new MailMessage("[email protected]", "[email protected]", "test", sb.ToString());
message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
message.IsBodyHtml = true;
client.Send(message);
}以上在邮件里面是中文字都变成了,也看不懂是什么字
像这些“骞垮窞澶╁”谢谢
System.Text.StringBuilder sb = new StringBuilder();
System.IO.StringWriter swRead = new StringWriter(sb);
Server.Execute(html, swRead);
读出来的是乱码
这里是读取一个文件
===========
这里主要看你的文件保存的编码,如果你的系统是gb2312的。。webconfig里面设置是utf-8的。那这里就有可能导致乱码
我自己的解决方案是:简体系统asp.net用utf-8.邮件文件用ansi(系统默认编码),然后写入读取时都用回ansi!
注意。System.IO.StringWriter swRead 这个默认是用uft-8读的!!并不是ansi(也就是说当你的系统为简体时,保存的ansi指定的是简体,然而读的时候却用了uft-8去编码,所以乱码了)
System.IO.Stream sr=File.Open( AppDomain.CurrentDomain.BaseDirectory+FileName,FileMode.Open );
System.IO.StreamReader reader = new System.IO.StreamReader(sr, System.Text.Encoding.Default);
string str=reader.ReadToEnd();
用这个也是一样的乱码
我读取的是我本地存放的htm文件
System.Text.StringBuilder sb = new StringBuilder();
System.IO.StringWriter swRead = new StringWriter(sb);
Server.Execute(html, swRead);
要怎么改主要是在哪里用Encoding.GetEncoding("utf-8"))
bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding("gb2312"), System.Text.Encoding.GetEncoding("utf-8"), bs);
string getHtml = System.Text.Encoding.GetEncoding(To).GetString(bs);
message的编码设置和它一样.
bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding("gb2312"), System.Text.Encoding.GetEncoding("utf-8"), bs);
string getHtml = System.Text.Encoding.GetEncoding(To).GetString(bs);同意这个