private static void EncodeToBuffer(string value, StringBuilder builder, bool allowUnicode) { Encoding?encoding = MimeBasePart.DecodeEncoding(value); if (encoding != null) // Manually encoded elsewhere, pass through { builder.Append('\"').Append(value).Append('"'); } else if ((allowUnicode && !MailBnfHelper.HasCROrLF(value)) || // Unicode without CL or LF's MimeBasePart.IsAscii(value, false)) // Ascii { MailBnfHelper.GetTokenOrQuotedString(value, builder, allowUnicode); } else { // MIME Encoding required encoding = Encoding.GetEncoding(MimeBasePart.DefaultCharSet); builder.Append('"').Append(MimeBasePart.EncodeHeaderValue(value, encoding, MimeBasePart.ShouldUseBase64Encoding(encoding))).Append('"'); } }
//use when the length of the header is not known or if there is no header internal static string EncodeHeaderValue(string value, Encoding encoding, bool base64Encoding) { return(MimeBasePart.EncodeHeaderValue(value, encoding, base64Encoding, 0)); }