google analytics

viernes, 6 de julio de 2012

Leer acentos con StreamReader

Ya que en el post anterior mostrábamos como leer archivos en c#, a veces se da el caso que ese fichero de texto tenga palabras con tildes que a veces se muestran de manera incorrecta al procesarlos, para eso tomamos el ejemplo del anterior post y lo modificamos un poco:

private void ProcesarFichero()
{
            if (this.fuFicheros.HasFile)
            {
                string filename = this.fuFicheros.PostedFile.FileName;

                if (filename.Substring(filename.LastIndexOf('.')).Trim().ToUpper() == ".CSV")
                {
                    string line;
                    StringBuilder log = new StringBuilder();
                    Stream stream = this.fuFicheros.FileContent;
                   
                    using (StreamReader sr = new StreamReader(stream, System.Text.Encoding.Default,
 false))
                    {
                        while (!string.IsNullOrEmpty(line = sr.ReadLine()))
                        {
                            log.AppendLine(line);
                        }
                    }
                }
            }
        }


Si se fijan en la línea número 13, sólo hemos llamado a otra sobrecarga de la clase StreamReader.

                    using (StreamReader sr = new StreamReader(stream, System.Text.Encoding.Default, false))


De está manera nos aseguramos que leemos el archivo de manera correcta sin caracteres raros. Espero les haya servido.


14 comentarios:

  1. Tio no me ha servido :(

    ResponderEliminar
    Respuestas
    1. Siento no haberte contestado a tiempo, he estado muy ocupado con el trabajo. Si quieres mandame el código y lo reviso, mi correo es jhon.marmolejo1@gmail.com

      Eliminar
  2. Muy buen articulo, claro y preciso, ya tenia un rato buscando esta opcion

    ResponderEliminar
  3. Gracias amigo justo lo andaba buscando

    ResponderEliminar
  4. Muy buen aporte muchas gracias

    ResponderEliminar
  5. Exelente aporte me salvaste gracias

    ResponderEliminar
  6. Gracias, creo que ya no necesito la ayuda. Reemplacé el ASCCI por UTF8 y me leyó las "ñ".

    ResponderEliminar
  7. Maravilloso!!! Mil gracias me ayudó un montón, mira que línea más sencilla y estaba poniendo UTF8 y no funcionaba, y esto va como la seda gracias!!!

    ResponderEliminar