ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding默认
简单的问题,但我无法找到任何地方MSDN的答案...ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding默认
寻找默认ASP.NET将用于:
MailMessage.BodyEncoding
和MailMessage.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