0

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

我在网上环顾四周,看到几个人说要将 contentEncoding 设置为 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.UTF7System.Text.Encoding.UTF32System.Text.Encoding.DefaultSystem.Text.Encoding.GetEncoding(1252);

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

谢谢

4

1 回答 1

0

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

于 2013-10-03T14:54:28.010 回答