C# encoder string pour du .csv

Fermé
geekosa Messages postés 10436 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 16 septembre 2014 - 14 mai 2012 à 11:30
Bonjour,
Je suis actuellement en train de faire l'évènement de mon bouton qui va Exporter la gridview de la page en .csv

voici le code de l'event:

protected void exportWord(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition",
"attachment;filename=GridViewExport.csv");
Response.Charset = "";
Response.ContentType = "application/text";

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

StringBuilder sb = new StringBuilder();
for (int k = 0; k < GridViewHisto.Columns.Count; k++)
{
//add separator
sb.Append(GridViewHisto.Columns[k].HeaderText + ';');
}
//append new line
sb.Append("\r\n");
for (int i = 0; i < GridViewHisto.Rows.Count; i++)
{
for (int k = 0; k < GridViewHisto.Columns.Count; k++)
{
//add separator
sb.Append(GridViewHisto.Rows[i].Cells[k].Text + ';');
}
//append new line
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
}

ce code que j'ai trouvé marche plutôt bien, mais j'ai quand même un problème:
dans ma gridview j'ai des chaines contenant des espaces ou des "é" ou autres.
or ca le transforme en   ou é ect
Or d'une c'est pas joli, mais surtout le terme contient un ";" qui est le séparateur de mon .csv
ce qui décale tout à chaque caractère spécial

Je pensais donc encoder mes chaines avant de l'ajouter au csv, mais je sai spas bien comment faire.

Merci de m'éclairer ;-)


A voir également: