Я сделал функцию загрузки для загрузки сообщений в файл 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");