我使用以下代码发送带有中文字符的附件(.csv)。但是,MS excel无法正确显示字符,它显示的内容类似于“¨å¯ææ-°ç”。是因为我在发送邮件时没有设置一些属性吗?
感谢您的任何建议。
byte[] attachBytes = Encoding.UTF8.GetBytes(attachText);
ms.Write(attachBytes, 0, attachBytes.Length);
// Set the position to the beginning of the stream.
ms.Position = 0;
ContentType ct = new ContentType(MediaTypeNames.Text.Plain);
Attachment attactment = new Attachment(ms, attachFileName);
message.Attachments.Add(attactment);
答案 0 :(得分:1)
我认为您需要为邮件正文对象设置额外的编码设置,如下所示:
message.BodyEncoding = UTF8
答案 1 :(得分:1)
将附件编码设置为Encoding.UTF32
可能有所帮助。假设attachText
是string
并且您只想添加.csv,则可以使用Attachment.CreateAttachmentFromString()
方法缩短代码:
var attachment = Attachment.CreateAttachmentFromString(attachText,
"filename.csv",
Encoding.UTF32,
"text/csv");
message.Attachments.Add(attachment);
答案 2 :(得分:0)
我找到了解决方法:
O(|E| + |V|)
对我来说很好