将gridview导出到Excel时,阿拉伯字符无法识别

当我将gridviews导出到Excel时,我遇到了识别阿拉伯字符的问题。 阿拉伯语文本显示为“Ø®Ù​​”اØμ“,但不能识别阿拉伯文数据以及阿拉伯语网格视图标题

我正在使用下面的代码导出到Excel在同一个Web应用程序中的许多GridView,它工作正常,它承认阿拉伯文本

protected void BtnExportDateSearch_Click(object sender, EventArgs e) { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=ExportDataDateSearch.xls"); HttpContext.Current.Response.Charset = "UTF-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.xls"; StringWriter StringWriter = new System.IO.StringWriter(); HtmlTextWriter HtmlTextWriter = new HtmlTextWriter(StringWriter); GridView1.RenderControl(HtmlTextWriter); Response.Write(StringWriter.ToString()); Response.End(); } 

我的情况之间的区别,以防万一我从通常的select查询检索到的数据到gridview中,它识别阿拉伯文本,但在我使用unpivot和CASE语句的情况下,在asp页面的gridview上查看阿拉伯语但是当我将它导出为ex​​cel时,阿拉伯文本无法识别。

这是存储过程,这是我gridview的数据源:

 ALTER PROCEDURE [dbo].[UnpivotApprovedPalms] @StartDateTime datetime2(7), @EndDateTime datetime2(7) AS BEGIN SELECT FarmID, CASE PalmsName WHEN 'kalas' THEN N'خلاص' WHEN 'khnizi' THEN N'خنيزي' WHEN 'jashKharma' THEN N'جش خرمة' WHEN 'anbaratAlMadina' THEN N'عنبرة المدينة' WHEN 'NabtatSaif' THEN N'نبتة سيف' ELSE PalmsName END AS 'PalmsName', Quantity, TransactionDateTime FROM [ApprovedPalmsInFarm] UNPIVOT (Quantity FOR PalmsName IN ([kalas], [khnizi], [jashKharma], [anbaratAlMadina]) ) u WHERE u.TransactionDateTime >= @StartDateTime AND u.TransactionDateTime <= @EndDateTime; RETURN END 

导致这个问题的代码有什么错误? 乳清当我改变查询它工作正常,但特别是与我的unpivot查询与案件的声明阿拉伯文不认识? asp页面可以正确地查看带有阿拉伯文字的gridview,但是只有当我把它导出到Excel的时候,阿拉伯语才会被识别

将字节顺序标记(BOM)添加到Excel文件的标题

  Response.AddHeader("content-disposition", "attachment;filename=ExportDataDateSearch.xls"); // Insert below Response.ContentEncoding = System.Text.Encoding.Unicode; Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); 

引用: ASP.NET Excel导出编码问题

Interesting Posts