日期:2012-08-13  浏览次数:21150 次

当导数据到Excel 中时有时会出现乱码


原来代码

private static void WriteToExcelFromDataGrid(DataGrid dg, string fileName)
{
//StringWriter tw = new StringWriter(new CultureInfo( "zh-CHS", false));
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
dg.RenderControl(hw);

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
response.ContentType ="application/vnd.ms-excel";
response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
response.Charset = "gb2312";
response.Write(tw.ToString());
response.End();
}

正确

response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-7");


原因 utf-8不支持中文