我正在尝试从内存流中下载一个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.Default
和System.Text.Encoding.GetEncoding(1252);
没有解决问题。有没有人有任何可以帮助我的想法?
由于
答案 0 :(得分:0)
当源文件先前使用错误的字符编码解释(例如iso-8859-1)然后保存为UTF 8时,我有时会看到此问题。将源流存储为二进制文件,然后将其打开一个十六进制编辑器(例如xvi32)并检查你的£符号的字节序列。