【问题标题】:Excel and CSV export does not show Persian characters correctlyExcel 和 CSV 导出无法正确显示波斯字符
【发布时间】:2017-12-25 09:17:54
【问题描述】:

将 SQL Server 数据导出到 .csv 时,波斯语中的短语无法正确显示。

string date = Helper.ToPersianDate(DateTime.Now).Replace("/", "");
date += ".csv";

Response.Clear();
Response.AppendHeader("content-disposition", "attachment; filename=" + date);
Response.ContentType = "text/csv";
Response.Charset = Encoding.Unicode.ToString();

foreach (DataRow r in ds.Tables[0].Rows)
{
    Response.Write(r[0]);
    Response.Write("\r\n");
}
Response.End();      

【问题讨论】:

    标签: c# asp.net export-to-excel export-to-csv persian


    【解决方案1】:
    string date = Helper.ToPersianDate(DateTime.Now).Replace("/", "");
    date += ".csv";
    
    Response.Clear();
    Response.AppendHeader("content-disposition", "attachment; filename=" + date);
    Response.ContentType = "text/csv";
    Response.Charset = Encoding.Unicode.ToString();
    Response.ContentEncoding = System.Text.Encoding.Unicode;
    
    /*
     save utf-8 with BOM
     GetPreamble
     */  
    Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
    
    foreach (DataRow r in ds.Tables[0].Rows)
    {
        Response.Write(r[0]);
        Response.Write("\r\n");
    }
    Response.End();      
    

    【讨论】:

    • 如果你想获得一个合适的 IANA 兼容的编码标识符,你应该使用 'Encoding.Unicode.HeaderName' 而不是 `Encoding.Unicode.ToString()'。
    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2012-05-20
    相关资源
    最近更新 更多