导Excel出现没有规律乱码的问题。

coo_key 2005-09-01 05:23:56
public void Export2Excel(string fileName,System.Web.UI.WebControls.DataGrid dgList)
{
Response.Clear();
Response.Buffer= true;
Response.Charset="gb2312";
Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)+".xls");
//Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.ContentEncoding=System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dgList.BackColor = Color.FromName("#00000") ;
dgList.BorderWidth = 1 ;
dgList.RenderControl(oHtmlTextWriter);
dgList.BackColor = Color.FromName("#B2BBC0") ;
dgList.BorderWidth = 0 ;
Response.Write(oStringWriter.ToString());
Response.End();
}

写了这个函数把DataGrid导成Excel
如果使用这一句:
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");

则有些会出现乱码,有些DataGrid不会(同一个Usercontrol模板的DataGrid也出现这个问题)
如果使用
Response.ContentEncoding=System.Text.Encoding.UTF8;

则不会,不过字体会变成英文字体而不是宋体,设置dgList的字体也没有用。
怎么会出现这样的乱码问题?哪位知道。。。
...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
beachshen 2005-09-13
  • 打赏
  • 举报
回复
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
改为
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-7")

coo_key 2005-09-05
  • 打赏
  • 举报
回复
ding

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧