2017-12-25 29 views
-4

SQL Server 데이터를 .csv으로 내보낼 때 페르시아어 구문이 올바르게 표시되지 않습니다. 대신 Encoding.Unicode.ToString`의Excel 및 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();  

답변

0
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();  
+0

()는 적절한 IANA 호환 인코딩 식별자를 얻으려면 Encoding.Unicode.HeaderName '를'사용한다 '. – ckuri