以前把表格到处为.csv文件,没有注意文件编码格式,今天发现自己到处的.csv文件不能用excel打开。
于是发现.csv文件编码格式没有写入,windows 文本文件的开头有两字节表示文件的编码。
///参考:http://www.websina.com/bugzero/kb/unicode-bom.html
byte[] btyeUTF16 = {0xFF, 0xFE}; ///unicode 头标示
Response.Clear();
Response.Charset = "utf-16";
Response.Buffer = true;
this.EnableViewState = false;
Response.ContentEncoding = System.Text.UnicodeEncoding.Unicode;
Response.ContentType = "text/csv";
Response.AppendHeader("Content-Length", strCSV.Length.ToString());
Response.AppendHeader("Content-Disposition", "attachment;filename=/"" + strInitFileName +"/"") ;
Response.BinaryWrite(btyeUTF16); ///写文件头 Byte Order Mark
Response.Write(strCSV.ToString()); //写文件内容
Response.Flush();
Response.End();
现在到处的.csv文件就能够直接excel打开了。
本文介绍了一个关于CSV文件编码的问题及解决方案。作者发现导出的CSV文件因缺少编码标识导致Excel无法正常打开。通过添加UTF-16编码标识符,解决了此问题,使文件能够在Excel中正确显示。
2092

被折叠的 条评论
为什么被折叠?



