簡體   English   中英

CSV文件導出存在編碼問題

[英]CSV file export with encoding issues

我正在嘗試將SQL Server表導出到CSV文件中:

表中的數據類似於=Presentación或Difusión

一切正常...但是在.CSV文件中,我發現:

Presentación or Difusión

這是我的.cs代碼:

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

UTF-8是真正的字符集嗎?

為了正確解碼HTML文件,您的瀏覽器需要知道使用哪種編碼。 您可以通過設置charset參數或通過設置meta標簽來告訴他: <meta charset="UTF-8">

因此:您需要使用UTF-8保存HTML文件並正確聲明該編碼。

從理論上講,它也可以是服務器上的默認編碼為UTF-8以外的其他編碼-然后應從.htaccess服務器文件中刪除AddDefaultCharset your_encoding並編寫AddDefaultCharset utf-8 但是我不確定這與您的情況有關。

編輯:

字節&#243; 在UTF-8中代表西班牙語字符ó。 因此,我認為您不應該嘗試使用其他編碼進行編碼,因為它絕對是utf-8。

您可以嘗試以下代碼

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM