2016-09-14 4 views
0

Я пытаюсь экспортировать таблицу SQL Server в файл CSV:CSV экспорт файлов с кодировкой вопросы

Данные в таблице, как = Presentación или Difusion

Все работает хорошо ... но в файле .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 истинной кодировкой?

+0

UTF это набор символов, но ваш текст, несомненно, с UTF HTML кодирования. –

+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">

Итак: вам нужно сохранить файл HTML с использованием UTF-8 и объявить, что кодирование должным образом.

Также теоретически может быть, что на вашем сервере по умолчанию используется кодировка UTF-8, тогда вы должны удалить AddDefaultCharset your_encoding из файла .htaccess и написать AddDefaultCharset utf-8. Но я не уверен, что это касается вашего дела.

EDIT:

Байт &#243; обозначает испанского характера ó в UTF-8. Поэтому я думаю, вы не должны пытаться кодировать другие кодировки, потому что это определенно utf-8.

+0

CMS wiht 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(); 
Смежные вопросы