9

我有这段代码可以创建附件并发送电子邮件。如果文件名包含 æ、ø 或 æ,则该文件名将被完全销毁。

在此处输入图像描述

如果我删除挪威字母,一切正常

在此处输入图像描述

        var stream = new MemoryStream();
        doc.Save(stream, SaveFormat.Docx);

        mail.From = new MailAddress("no-replay@email.no");
        mail.To.Add("my@email.no");
        mail.IsBodyHtml = true;
        mail.Subject = "Attachments test";
        mail.Body = "Hei,<br /><br />";
        stream.Seek(0, SeekOrigin.Begin);

        var attachment = new Attachment(stream, "Name Å Æ Ø.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
        attachment.NameEncoding = Encoding.UTF8;
        mail.Attachments.Add(attachment);
        var smtp = new SmtpClient("smtp.server.com") {Port = 25};
        smtp.Send(mail);

如何正确完成这项工作?

解决方案

我在这里找到了一个解决方案http://social.msdn.microsoft.com/Forums/en-US/dotnetframeworkde/thread/b6c764f7-4697-4394-b45f-128a24306d55

4

2 回答 2

2

这是 microsoft 为 .net framework 4 提供的解决方案

http://support.microsoft.com/kb/2402064

于 2013-09-06T04:59:25.723 回答
0

尝试更改attachment.NameEncoding = Encoding.UTF8;attachment.NameEncoding = Encoding.Unicode;.

于 2012-05-03T15:34:30.443 回答