ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding违约 [英] ASP.NET MailMessage.BodyEncoding and MailMessage.SubjectEncoding defaults

查看:573
本文介绍了ASP.NET MailMessage.BodyEncoding和MailMessage.SubjectEncoding违约的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

简单的问题,但我找不到任何地方MSDN的答案......

Simple question but I can't find the answer anywhere on MSDN...

寻找默认ASP.NET将用于:

Looking for the defaults ASP.NET will use for:

MailMessage.BodyEncoding MailMessage.SubjectEncoding

如果您没有设置它们code?

If you don't set them in code?

感谢

推荐答案

有关<一个href=\"http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.bodyencoding.aspx\"><$c$c>MailMessage.BodyEncoding MSDN说:

For MailMessage.BodyEncoding MSDN says:

为指定的值
   BodyEncoding 属性设置
  字符设定的领域
  Content-Type头。默认
  字符集是US-ASCII

有关 MailMessage.SubjectEncoding 我也无法找到任何记录的默认值,但反射器是救援:

For MailMessage.SubjectEncoding I was also unable to find any documented default value, but reflector is to rescue:

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 编码的内部方法:

MimeBasePart.IsAscii is an internal method which tries to determine whether the passed value is in ASCII encoding:

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违约的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆