2012-05-03 21 views
8

Tôi có đoạn mã này tạo tệp đính kèm và gửi email. Nếu tên của tập tin chứa æ, ø hoặc æ, tên bị phá hủy hoàn toàn.Tên của tệp đính kèm được giải mã sai nếu chữ cái Na Uy được sử dụng

enter image description here

Nếu tôi loại bỏ chữ Na Uy, tất cả mọi thứ là ok

enter image description here

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

     mail.From = new MailAddress("[email protected]"); 
     mail.To.Add("[email protected]"); 
     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); 

Làm thế nào để có được công việc này đúng cách?

SOLUTION

Tôi tìm thấy một giải pháp ở đây http://social.msdn.microsoft.com/Forums/en-US/dotnetframeworkde/thread/b6c764f7-4697-4394-b45f-128a24306d55

+0

là 'mail' một' MailMessage'? Nếu vậy, bạn có thể kiểm tra xem tất cả các thuộc tính "mã hóa", như 'BodyEncoding',' HeadersEncoding' và vv, có cùng giá trị không? –

+0

Tất cả các tham số này là UTF8> mail.SubjectEncoding = Encoding.UTF8; mail.BodyEncoding = Encoding.UTF8; mail.HeadersEncoding = Encoding.UTF8; Nó không giúp được. – podeig

Trả lời

0

Hãy thử thay đổi attachment.NameEncoding = Encoding.UTF8; để attachment.NameEncoding = Encoding.Unicode;.

+0

Tôi đã thử tất cả Mã hóa. Nếu tôi sử dụng tên Unicode như thế này = utf-16MUAByg8 ........ sẽ xuất hiện. – podeig

1

ở đây là độ phân giải từ microsoft cho khung .net 4

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

+1

tải xuống trực tiếp: 64: http://hotfixv4.microsoft.com/.NET%20Framework%204.0%20-%20Windows%20XP,%20Windows%202003,%20Windows%20Vista,%20Windows%20Server%202008,%20Win7, % 20Windows% 20Server% 202008% 20R2% 20 (MSI) /nosp/DevDiv933059/30319.364/free/421618_intl_x64_zip.exe 32: http://hotfixv4.microsoft.com/.NET%20Framework%204.0%20-%20Windows % 20XP,% 20Windows% 202003,% 20Windows% 20Vista,% 20Windows% 20Server% 202008,% 20Win7,% 20Windows% 20Server% 202008% 20R2% 20 (MSI) /nosp/DevDiv933059/30319.364/free/421617_intl_i386_zip.exe – phoenix