【问题标题】:How do I set Encoding on AlternateView如何在 AlternateView 上设置编码
【发布时间】:2015-08-26 01:55:09
【问题描述】:

我正在通过

创建一个mailBody
using (var streamWriter = new StreamWriter(fooFileName, false, Encoding.UTF8))
{
    streamWriter.Write(fooMessage);
}

现在我正在使用这个文件

var mailMessage = new System.Net.Mail.MailMessage
{
    From = fooSender,
    To =
    {
        fooRecipient
    },
    Subject = fooSubject,
    SubjectEncoding = Encoding.UTF8,
    BodyEncoding = Encoding.UTF8
};
// fooMediaType can be
// - System.Net.Mime.MediaTypeNames.Text.Html
// - System.Net.Mime.MediaTypeNames.Text.Plain
var alternateView = new System.Net.Mail.AlternateView(fooFileName, fooMediaType);
mailMessage.AlternateViews.Add(alternateView);

如果我使用非变音符号,一切正常,但只要我在 alternateView 中使用变音符号,它们就会损坏。

那么如何在alternateView 上设置某种编码以保证一切正常?

【问题讨论】:

    标签: c# .net-3.5


    【解决方案1】:
     var alternateView = new AlternateView(fooFileName, fooMediaType)
     {
          ContentType =
          {
               CharSet = Encoding.UTF8.WebName
          }
     };
    

    【讨论】:

    • 非常有帮助!使用Encoding.UTF8.HeaderName 可能会更好,因为 charset 参数将被添加到 Content-Type 标头中。在这种情况下,Encoding.UTF8.WebNameEncoding.UTF8.HeaderName 都返回相同的值 utf-8,所以这并不重要。
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多