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格式的。

Asp.net导出Excel乱码的解决方法,布布扣,bubuko.com

时间: 2024-10-13 00:30:57

Asp.net导出Excel乱码的解决方法的相关文章

Asp.net导出Excel(HTML输出方法)

主要思路: 实例化Gridview,将值绑定后输出...(用烂了的方法) 贴上核心代码: public static void ExportToExcel(DataTable dataList, string[] fields, string[] headTexts, string title, string TableName) { GridView gvw = new GridView(); int ColCount, i; //如果筛选的字段和对应的列头名称个数相对的情况下只导出指定的字段

ASP.NET中文显示乱码之解决方法

在config.web中设置globalization段 <configuration> <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/></configuration> 可以是utf-8.gb2312等等. ASP.NET中文显示乱码之解决方法

BCP SQL导出EXCEL常见问题及解决方法;数据导出存储过程

一.'xp_cmdshell'的启用 SQL Server阻止了对组件'xp_cmdshell'的过程'sys.xp_cmdshell'的访问.因为此组件已作为此服务嚣安全配置的一部分而被关 闭.系统管理员可以通过使用sp_configure启用'xp_cmdshell'.有关启用'xp_cmdshell'的详细信息 解决方法: 1.通过SQL语句开启.[推荐此方法,因为在任何版本的SQL SERVER中都可以使用.]通过查询分析器,选择Master数据库,然后执行以下SQL内容: sp_con

ASP.NET访问Excel 失败的解决方法(错误号:80070005,8000401a)

用asp.net把值写入Excel在本地测试通过,然后提交服务器后老是写入不成功 并提示错误: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.在网络上查找了许多资料,原来是对于用户来说,对服务器上的文件的操作权限不够所引起的错误,要配置DCOM具体配置方法如下:

asp.net 导出excel 中文乱码解决方法 (转)

用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,其实要解决中文乱码很简单,设置一下字符集.如下: // 设置编码和附件格式 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312&

在ASP.NET中,IE与Firefox下载文件带汉字名时乱码的解决方法

解决办法: HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); HttpContext.Current.Response.Charset = "gb2312"; HttpCon

解决PHP使用CVS导出Excel乱码问题

在使用PHP生成CVS文件后通过Excel打开发现中文全部变成了乱码,之前在我本地win08通过WPS正常的,但上传到服务器Linux在服务器上测试出现了乱码 一开始以后是Linux的问题但后来测试时发现是WPS的问题(猜测可以是WPS对编码做了处理,服务器上通过Excel打开也是乱码的) 因为我的PHP文件和数据库里的编码都是UTF-8格式而且使用文本编辑器打开的编码也是UTF-8的   PHP代码 导出的CVS文档,使用文本编辑器打开是没有乱码 使用Excel打开却是乱码 网上很多人说将数据

AJAX在Post中文的时候乱码的解决方法

加上设置字符编码的方法: response.setHeader("charset","gb2312"); ******************************************** 看到的说明原文如下: 用AJAX来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候

【 D3.js 进阶系列 — 1.2 】 读取 CSV 文件时乱码的解决方法

在 D3 中使用 d3.csv 读取 CSV 文件时,有时会出现乱码问题.怎么解决呢? 1. 乱码问题 使用 d3.csv 读取 xxx.csv 文件时,如果 xxx.csv 文件使用的是 UTF-8 编码,不会有什么问题.当然,个人认为尽量使用 UTF-8 编码,可以在同一编码内使用各国文字. 但是,如果 xxx.csv 文件使用的是 utf-8 编码,使用 Microsoft Excel 打开的时候,可能会出现乱码,因为国内的 Excel 默认使用 GB2312 打开,而且在打开的时候不能选