2016-09-14 3 views
0

내가 CSV 파일로 SQL Server 테이블을 수출하기 위해 노력하고있어 발행 :CSV 파일 내보내기가

테이블에

데이터 Presentación 또는 DIFUSION

= 같다 모두 잘 작동하고

...하지만 .CSV 파일에 내가 찾을 :

GridView1.AllowPaging = false; 
GridView1.DataBind(); 

StringBuilder sb = new StringBuilder(); 

for (int k = 0; k < GridView1.Columns.Count; k++) 
{ 
    // add separator 
    sb.Append(GridView1.Columns[k].HeaderText + ';'); 
} 

// append new line 
sb.Append("\r\n"); 

for (int i = 0; i < GridView1.Rows.Count; i++) 
{ 
    for (int k = 0; k < GridView1.Columns.Count; k++) 
    { 
     // add separator 
     sb.Append(GridView1.Rows[i].Cells[k].Text + ';'); 
    } 

    // append new line 
    sb.Append("\r\n"); 
} 

Encoding encoding = Encoding.UTF8; 

Response.Clear(); 
Response.Buffer = true; 
Response.AddHeader("content-disposition", "attachment;filename=OrigenDatos.csv"); 
Response.Charset = encoding.EncodingName; 
Response.ContentType = "application/text"; 
Response.ContentEncoding = Encoding.Unicode; 
Response.Output.Write(sb.ToString()); 
Response.Flush(); 
Response.End(); 

: 이것은 내 .cs 코드는

Presentaci&#243;n or Difusi&#243;n 

입니다 UTF-8이 진정한 charset입니까?

+0

UTF는 캐릭터 세트, 그러나 텍스트는 의심 할 여지없이 HTML 인코딩을 UTF입니다 코드 아래에 이것을 시도 할 수 있습니다. –

+0

utf-8은 내 webform.aspx에서 구체화됩니다. @MarcB Synapsido

+0

내 대답 좀보세요. 자세한 정보는 https://www.w3.org/TR/html401/charset.html#h-5.2.2 –

답변

1

HTML 파일을 올바르게 디코딩하려면 브라우저가 사용할 인코딩을 알아야합니다. charset parameter을 설정하거나 meta tag을 설정하여이를 알릴 수 있습니다. <meta charset="UTF-8">

따라서 UTF-8을 사용하여 HTML 파일을 저장하고 인코딩을 올바르게 선언해야합니다.

이론적으로 서버의 기본 인코딩이 UTF-8로 다른 것일 수도 있습니다. 그러면 .htaccess 서버 파일에서 AddDefaultCharset your_encoding을 삭제하고 AddDefaultCharset utf-8을 작성해야합니다. 그러나 이것이 귀하의 사건에 관한 것인지 확신하지 못합니다.

편집 :

바이트 UTF-8로 O 스페인어 문자 &#243; 의미합니다. 따라서 다른 인코딩으로 인코딩하려고하면 안됩니다. 확실히 utf-8이기 때문입니다.

+0

C#/ASP.NET에서는 .htaccess 구성을 지원하지 않습니다. – Synapsido

+0

좋습니다. 알고있다. 문제가 해결되지 않으면 내가 시도 할 수있는 업데이트가 있습니다. –

0

당신은

 Response.Clear(); 
     Response.Buffer = true; 
     Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, Encoding.UTF8) + ""); 
     Response.Cookies.Add(new System.Web.HttpCookie("fileDownload", "true")); 
     Response.Charset = ""; 
     Response.ContentType = "application/csv"; 
     Response.ContentEncoding = Encoding.UTF8; 
     Response.BinaryWrite(Encoding.UTF8.GetPreamble()); 
     Response.Write(outPutStringData); // Information which you want in .csv file 
     Response.Flush(); 
     Response.End(); 
관련 문제