Asp.net导出Excel乱码的解决方法
通过跟踪Asp.net服务器代码,没有乱码,然而导出Excel到浏览器后,打开时出现乱码。
解决方法是添加编码格式的前缀字节码:
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
1
2
3
4
5
6
7
8
9
10
11
12
13 |
Response.Clear(); Response.AddHeader( "content-disposition" , "attachment;filename=Test.xls" ); Response.ContentType = "application/ms-excel" ; Response.ContentEncoding = System.Text.Encoding.Unicode; Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); System.IO.StringWriter sw = new
System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new
HtmlTextWriter(sw); FormView1.RenderControl(hw); Response.Write(sw.ToString()); Response.End(); |
例如Utf-8的Preamble是3个字节:239,187,191。这三个字节位于文件的头部,表示我们的文件是utf-8格式的。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。