El nombre del archivo adjunto está mal decodificado si se usan letras noruegas

Tengo este fragmento de código que crea un archivo adjunto y envía un correo electrónico. Si el nombre del archivo contiene æ, ø o æ, el nombre se destruye por completo.

enter image description here

Si elimino las letras noruegas, todo está bien.

enter image description here

        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);

¿Cómo hacer que este trabajo funcione correctamente?

SOLUTION

Encontré una solución aquí http://social.msdn.microsoft.com/Forums/en-US/dotnetframeworkde/thread/b6c764f7-4697-4394-b45f-128a24306d55

preguntado el 03 de mayo de 12 a las 16:05

Is mail a MailMessage? Si es así, ¿podría verificar si todas las propiedades de "codificación", como BodyEncoding, HeadersEncoding y así sucesivamente, tienen el mismo valor? -

Todos estos parámetros son UTF8 > mail.SubjectEncoding = Encoding.UTF8; mail.BodyEncoding = Codificación.UTF8; mail.HeadersEncoding = Codificación.UTF8; No ayuda. -

2 Respuestas

aquí está la resolución de microsoft para .net framework 4

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

Respondido el 06 de Septiembre de 13 a las 05:09

Intenta cambiar attachment.NameEncoding = Encoding.UTF8; a attachment.NameEncoding = Encoding.Unicode;.

contestado el 03 de mayo de 12 a las 16:05

He probado todas las codificaciones. Si uso un nombre Unicode como este =utf-16MUAByg8........ aparece. - podeig

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.