Â出现在csv中的£之前,其中encoding设置为UTF8

时间:2013-10-03 14:51:27

标签: asp.net csv encoding

我正在尝试从内存流中下载一个csv文件,虽然它工作正常但我注意到所有的£字符都显示为£

我在网上看过,看到有几个人说要将内容编码设置为UTF8(其他几个),但这似乎根本没有效果

这是我的代码

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

我还尝试了System.Text.Encoding.UTF8 / System.Text.Encoding.UTF7 / System.Text.Encoding.UTF32 / System.Text.Encoding.DefaultSystem.Text.Encoding.GetEncoding(1252);

没有解决问题。有没有人有任何可以帮助我的想法?

由于

1 个答案:

答案 0 :(得分:0)

当源文件先前使用错误的字符编码解释(例如iso-8859-1)然后保存为UTF 8时,我有时会看到此问题。将源流存储为二进制文件,然后将其打开一个十六进制编辑器(例如xvi32)并检查你的£符号的字节序列。