ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding默认

简单的问题,但我无法找到任何地方MSDN的答案...ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding默认

寻找默认ASP.NET将用于:

MailMessage.BodyEncodingMailMessage.SubjectEncoding

如果你没有在代码中设置它们?

感谢

回答:

对于MailMessage.BodyEncoding MSDN说:

BodyEncoding属性指定的值设置在 Content-Type头的 字符集场。默认 字符集是"us-ascii"

对于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

以上是 ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding默认 的全部内容, 来源链接: utcz.com/qa/264707.html

回到顶部