很简单的问题,但我在 MSDN 上找不到答案......
查找 ASP.NET 将用于的默认值:
MailMessage.BodyEncoding
and MailMessage.SubjectEncoding
如果你不在代码中设置它们?
Thanks
For MailMessage.BodyEncoding http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.bodyencoding.aspxMSDN 说:
指定的值BodyEncoding
属性设置
中的字符集字段
内容类型标头。默认
字符集是"us-ascii"
.
For MailMessage.SubjectEncoding
我也无法找到任何记录的默认值,但反射器可以拯救:
internal void set_Subject(string value)
{
if ((value != null) && MailBnfHelper.HasCROrLF(value))
{
throw new ArgumentException(SR.GetString("MailSubjectInvalidFormat"));
}
this.subject = value;
if (((this.subject != null) && (this.subjectEncoding == null)) &&
!MimeBasePart.IsAscii(this.subject, false))
{
this.subjectEncoding = Encoding.GetEncoding("utf-8");
}
}
MimeBasePart.IsAscii
是一个内部方法,它尝试确定传递的值是否在ASCII
编码:
internal static bool IsAscii(string value, bool permitCROrLF)
{
if (value == null)
{
throw new ArgumentNullException("value");
}
foreach (char ch in value)
{
if (ch > '\x007f')
{
return false;
}
if (!permitCROrLF && ((ch == '\r') || (ch == '\n')))
{
return false;
}
}
return true;
}
所以看来主题的默认编码是UTF-8
在大多数情况下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)