Как декодировать HTML в CSV с пользовательской кодировкой по умолчанию?Каждое Response.ContentEncoding, которое я использую, экспортирует тарабарщину.
SQL в сетку :
SqlConnection conn = new SqlConnection(connectionString);
string select = "SELECT...";
SqlDataAdapter DataCommand = new SqlDataAdapter(select, conn);
DataSet ds = new DataSet();
DataCommand.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
Сетка в CSV:
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=CSVfile.csv");
Response.ContentType = "text/csv";
// other encoding like utf-8 also exports encoded data
Response.ContentEncoding = Encoding.GetEncoding("Windows-1250");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < GridView1.Rows.Count; i++)
{
for (int k = 0; k < GridView1.Rows[0].Cells.Count; k++)
{
sb.Append(GridView1.Rows[i].Cells[k].Text + ';');
}
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush()
Response.End();
SQL_Latin1_General_CP1_CI_AS данные правильно отображаются как «Windows CP-1250» в Grid, однако CSV содержит все символы в кодировке HTML (ó
вместо ó
и т. Д., Так же, как в HTML-источнике сетки).Я полностью потерян с этой кодировкой прямо сейчас ...