CSV文件导出编码问题
本文关键字:编码 问题 文件 CSV | 更新日期: 2023-09-27 18:06:58
我正在尝试将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文件,您的浏览器需要知道使用哪种编码。您可以通过设置字符集参数或设置meta标记来告诉他:<meta charset="UTF-8">
因此:您需要使用UTF-8保存HTML文件,并正确声明该编码。
它也可以理论上是,在你的服务器默认编码是其他的UTF-8 -然后你应该从。htaccess服务器文件中删除AddDefaultCharset your_encoding
和写AddDefaultCharset utf-8
。但我不确定这和你的案子有关。
字节ó
表示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();