.NET проблема кодирования почтовых вложений (.csv) - PullRequest
4 голосов
/ 30 ноября 2010

Я использую следующий код для отправки вложения (.csv) с китайскими символами. Однако MS Excel не отображает символы должным образом, он отображает что-то вроде «likeå¯¹æ– ° ç». Это потому, что я не установил какое-либо свойство при отправке почты?

Спасибо за любые советы.

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

Ответы [ 2 ]

1 голос
/ 18 ноября 2014

Может помочь установка кодировки вложений на Encoding.UTF32.Предполагая, что attachText является string, и вы хотите добавить только .csv, вы можете сократить код, используя метод Attachment.CreateAttachmentFromString():

var attachment = Attachment.CreateAttachmentFromString(attachText,
                                                       "filename.csv",
                                                       Encoding.UTF32,
                                                       "text/csv");
message.Attachments.Add(attachment);
1 голос
/ 30 ноября 2010

Я думаю, вам нужна дополнительная настройка кодировки для объекта тела письма, что-то вроде этого:

message.BodyEncoding = UTF8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...