Как убедиться, что мой созданный файл для скачивания - UTF-8? (а не UTF-8 без спецификации)

Я сделал функцию загрузки для загрузки сообщений в файл CSV (код ниже). Теперь, когда я открываю его в блокноте или блокноте ++, я вижу это:

é NY ø ╬ ║► ░ ê ö

(и это то, что находится в базе данных, между прочим)

Теперь, когда я открываю его в Ms-Excel, он показывает это:

à © NY ø â • ¬ â • 'â – º â–' ê ö

Когда я открываю его в notepad ++, он говорит, что он закодирован в «UTF8 без спецификации». Когда я кодирую его (в блокноте ++) в UTF-8, все идет хорошо (то есть Excel также показывает правильные символы)

Но как я могу убедиться, что файл, который я создаю, из моего кода такое UTF-8?

Это мой код:

public ActionResult DownloadPersonalMessages()
{    
    StringBuilder myCsv = new StringBuilder();
    myCsv.Append(new DownloadService().GetPersonalMessages());

    this.Response.ContentType = "text/csv";
    Response.AddHeader("content-disposition", "attachment; filename=PersonalMessages.csv");
    Response.ContentEncoding = Encoding.UTF8;
    Response.Write(myCsv.ToString());
    Response.Flush();
    Response.HeaderEncoding = Encoding.UTF8;
    return Content("");
}

Редактировать:

Моя функция теперь возвращает ByteArray с этим преобразованием

UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(str);

и моя загрузка теперь такая:

Response.AddHeader("Content-Disposition", "attachment; filename=PersonalMessages.csv");
return File(new DownloadService().GetPersonalMessages(), "text/csv");
8
задан abatishchev 26 November 2010 в 08:38
поделиться