Exportar archivo plano con caracteres especiales en C#

publicado por: Anonymous

Tengo una consulta desde SQL, que lo muestro en un GridView en una página web (ASP.NET) y desde allí lo exporto a un archivo plano delimitado con C# y tengo problemas con los acentos y caracteres especiales.

Por ejemplo, la palabra MUÑOZ, que la Ñ debe ocupar un espacio, me sale MUÑOZ y desborda la delimitación del archivo.

protected void btnGenerar_Click(object sender, EventArgs e)
{

    string nombre = "Archivo" + DateTime.Now.ToShortDateString();
    //Encoding encoding = Encoding.UTF8;

     Response.Clear();
     Response.ContentEncoding = System.Text.Encoding.UTF8;

        Response.Buffer = true;
        Response.AddHeader("content-disposition",
         "attachment;filename="+nombre+".txt");
        Response.Charset = "";
        Response.ContentType = "application/text";
         gvDatos.AllowPaging = false;
         gvDatos.DataBind();

        StringBuilder sb = new StringBuilder();

     //añadimos la cabecera desde el texbox

            string cab = txtCabecera.Text;

            sb.Append(cab);

        //append new line
        sb.Append("rn");

        CargarDatos();

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

solución

Lo solucioné cambiando la propiedad del BoundField del Gridview HtmlEncode de true a false.
<asp:BoundField DataField="contribuyente" HeaderText="CONTRIBUYENTE"
HtmlEncode="False" />

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *