Mostrando entradas con la etiqueta Encoding. Mostrar todas las entradas
Mostrando entradas con la etiqueta Encoding. Mostrar todas las entradas

Caracteres especiales en lugar de tildes al leer un archivo

Si aparecen caracteres especiales en lugar de los tildes, se soluciona utilizando este encoding:

var f = new System.IO.StreamReader(path, Encoding.GetEncoding("iso-8859-1"));

Abrir un archivo con el encoding correcto en C#

        public static Encoding GetFileEncoding(string srcFile)
        {
            // *** Por defecto usar Ansi CodePage
            Encoding enc = Encoding.Default;

            byte[] buffer = new byte[5];
            FileStream file = new FileStream(srcFile, FileMode.Open);
            file.Read(buffer, 0, 5);
            file.Close();

            if (buffer[0] == 0xef && buffer[1] == 0xbb && buffer[2] == 0xbf)
                enc = Encoding.UTF8;
            else if (buffer[0] == 0xfe && buffer[1] == 0xff)
                enc = Encoding.Unicode;
            else if (buffer[0] == 0 && buffer[1] == 0 && buffer[2] == 0xfe && buffer[3] == 0xff)
                enc = Encoding.UTF32;
            else if (buffer[0] == 0x2b && buffer[1] == 0x2f && buffer[2] == 0x76)
                enc = Encoding.UTF7;

            return enc;
        }

        public static StreamReader OpenStreamReaderWithEncoding(string srcFile)
        {
            Encoding enc = GetFileEncoding(srcFile);
            return new System.IO.StreamReader(srcFile, enc);
        }


Fuente: http://www.west-wind.com/Weblog/posts/197245.aspx