Comment m'assurer que mes créé filedownload est UTF-8? (et pas en UTF-8 sans BOM)

j'ai fait une fonction de téléchargement pour télécharger les messages vers un fichier CSV (le code est ci-dessous).
Maintenant quand je l'ouvre dans le bloc-notes ou notepad++, je vois ceci:

é NY ø ╬ ║ ► ° de la ê ö

(et c'est ce qui est dans la base de données btw)

Maintenant, quand je l'ouvre dans Ms-Excel, il indique ceci:

é NY à ╠║▼ ░ ê ö

Quand je l'ai ouvert dans notepad++, il dit que c'est codé en "UTF8 sans BOM'.
Quand je l'encode (dans notepad++) en UTF-8, tout va bien (c'est, Excel affiche le droit caractères trop)

Mais comment puis-je m'assurer que le fichier que j'ai créer à partir de mon code est en UTF-8?

C'est mon code:

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("");
}

Edit:

ma fonction retourne maintenant un ByteArray avec cette conversion

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

et mon téléchargement est maintenant ceci:

Response.AddHeader("Content-Disposition", "attachment; filename=PersonalMessages.csv");
return File(new DownloadService().GetPersonalMessages(), "text/csv");

OriginalL'auteur Michel | 2010-11-26