Comment ajouter de codage de l'information pour le flux de réponse dans ASP.NET?

J'ai des morceau de code suivant:

public void ProcessRequest (HttpContext context) 
{
    context.Response.ContentType = "text/rtf; charset=UTF-8";
    context.Response.Charset = "UTF-8";
    context.Response.ContentEncoding = System.Text.Encoding.UTF8;
    context.Response.AddHeader("Content-disposition", "attachment;filename=lista_obecnosci.csv");
    context.Response.Write("ąęćżźń󳥌ŻŹĆŃŁÓĘ");
}

Quand j'essaye d'ouvrir le fichier csv généré, j'obtiens le comportement suivant:

  • Dans Notepad2 - tout va bien.
  • Dans Word conversion de l'assistant s'ouvre et vous demande de convertir le texte. Il suggère UTF-8, qui est en quelque sorte ok.
  • Dans Excel - je obtenir un réel gâchis. Aucun de ces polonais caractères peuvent être affichés.

J'ai voulu écrire ces encodage de l'information personnages en face de ma chaîne, c'est à dire

context.Response.Write((char)0xef);
context.Response.Write((char)0xbb);
context.Response.Write((char)0xbf);

mais qui ne fera pas bon. Le flux de réponse est le traitement normal des données et de les convertir en quelque chose de différent.

Je vous remercie de l'aide sur celui-ci.

OriginalL'auteur Greg | 2009-06-17