2013-10-03 2 views
0

Je suis en train de télécharger un fichier csv à partir d'un flux de mémoire et pendant qu'il travaille la plupart du temps ok je remarque que tous les personnages de £ comparaissent comme  £Â comparants £ csv où l'encodage est réglé sur UTF8

J'ai regardé autour en ligne et vu plusieurs personnes disant pour régler le contentEncoding UTF8 (parmi d'autres), mais cela semblait avoir aucun effet

ici est mon code

byte[] attachment = MS.ToArray(); 

     Response.AddHeader("Content-Disposition", "attachment; filename=Wfielname.csv"); 
     Response.AddHeader("Content-Length", attachment.Length.ToString()); 
     Response.ContentType ="application/vnd.ms-csv"; 
     Response.ContentEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1"); 
     Response.BinaryWrite(attachment); 
     Response.Flush(); 
     Response.Close(); 

J'ai aussi essayé System.Text.Encoding.UTF8/System.Text.Encoding.UTF7/System.Text.Encoding.UTF32/System.Text.Encoding.Default et System.Text.Encoding.GetEncoding(1252);

qui n'a pas résolu le problème. Est-ce que quelqu'un a des idées qui peuvent m'aider?

Merci

Répondre

0

J'ai parfois vu ce problème lorsque le fichier source a été interprété précédemment avec le codage de caractères incorrect (par exemple iso-8859-1) puis enregistré au format UTF 8. Remisez votre flux source en tant que binaire fichier, et ouvrez-le dans un éditeur hexadécimal (par exemple xvi32) et vérifiez quelle séquence d'octets vous avez pour vos symboles £.

+0

Je ne suis pas vraiment sûr si je fais la bonne chose mais le  était C2 et le £ était A3. est-ce que cela aide? – jgok222

+0

C'est certainement l'encodage correct pour UTF8, donc je ne sais pas pourquoi cela n'a pas fonctionné lorsque vous avez défini cela comme votre encodage de contenu ci-dessus. Désolé je ne peux pas aider plus loin. – Jules

Questions connexes