ASP.NET MailMessage.BodyEncoding и MailMessage.SubjectEncoding по умолчанию - PullRequest
2 голосов
/ 15 марта 2011

Простой вопрос, но я нигде не могу найти ответ на MSDN ...

Поиск значений по умолчанию, которые ASP.NET будет использовать для:

MailMessage.BodyEncoding и MailMessage.SubjectEncoding

Если вы не установите их в коде?

Спасибо

1 Ответ

7 голосов
/ 15 марта 2011

Для 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 в большинстве случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...