tim*_*ord 2 c# asp.net mailmessage
简单的问题,但我无法在MSDN上的任何地方找到答案...
寻找ASP.NET将用于的默认值:
MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding
如果你没有在代码中设置它们?
谢谢
对于MailMessage.BodyEncodingMSDN说:
为该
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");
}
}
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
因此,似乎主题的默认编码将UTF-8在大多数情况下.
| 归档时间: |
|
| 查看次数: |
4250 次 |
| 最近记录: |