当我将网格视图导出到Excel时,我在识别阿拉伯字符方面有问题。阿拉伯文本显示为“appears”doesn§header,它不识别阿拉伯数据和阿拉伯网格视图标题
我使用下面的代码在同一个web应用程序中导出到Excel中的许多网格视图,它工作正常,并且识别阿拉伯文本
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查询中检索数据到网格视图中,它会识别阿拉伯文本,但如果我使用un枢轴和case语句,则在asp页面的网格视图上查看阿拉伯语是ok的,但是当我将阿拉伯文本导出到excel时,阿拉伯文本就不会被识别。
这是存储过程,它是我的网格视图的数据源:
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造成这个问题的密码有什么问题?为什么当我更改查询时,它的工作正常,但特别是对于我的不枢轴查询与case语句阿拉伯语不被识别?asp页可以正确地查看带有阿拉伯文本的网格视图,但只有当我将其导出到Excel时,阿拉伯语才无法识别。
发布于 2015-05-07 01:27:18
将字节顺序标记(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());https://stackoverflow.com/questions/30090305
复制相似问题