Problema con la eñe usando OdbcDataReader para fichero de texto

02/10/2007 - 09:30 por Francisco J. Rodríguez | Informe spam
Hola. Estoy intentando leer un fichero de texto usando ODBC (DSN-Less, o
como se diga eso) y un archivo SCHEMA.INI, para grabarlo en una tabla de una
b.d. SQL Server 2005.

El archivo lo leo y lo grabo sin problemas. Lo que no soy capaz de conseguir
es que caracteres como "ñ", "º", "ª", etc. los lea bien. En lugar de la "ñ"
lee otro carácter. Se supone que el archivo que recibo es ASCII, pero
tampoco estoy seguro de qué codificación es la que tiene.

La lectura la hago con la clase OdbcDataReader, guardando los "campos" del
fichero en un Array de objetos mediante GetValues. He intentado utilizar el
método GetBytes del DataReader, para luego convertirlo a string mediante
algún tipo de Encoding, pero no me funciona bien (algo debo estar haciendo
mal con ese método).

¿Alguien sabe si es posible solucionar esto con OdbcDataReader o tendré que
cambiar el código para usar un StreamReader, en el que sí es posible
especificar Encoding?

Gracias. Un saludo.
 

Leer las respuestas

#1 Francisco J. Rodríguez
03/10/2007 - 10:44 | Informe spam
Con StreamReader y Encoding.Default me funciona bien (ignoro lo que pasaría
en un sistema que esté en otro idioma que no sea castellano). Así que me
divorcio de OdbcDataReader y me arrejunto con el StreamReader, parece ser
que no me queda otro remedio.

Saludos.

-

"Francisco J. Rodríguez" escribió en el mensaje
news:uN%23%23$
Hola. Estoy intentando leer un fichero de texto usando ODBC (DSN-Less, o
como se diga eso) y un archivo SCHEMA.INI, para grabarlo en una tabla de
una b.d. SQL Server 2005.

El archivo lo leo y lo grabo sin problemas. Lo que no soy capaz de
conseguir es que caracteres como "ñ", "º", "ª", etc. los lea bien. En
lugar de la "ñ" lee otro carácter. Se supone que el archivo que recibo es
ASCII, pero tampoco estoy seguro de qué codificación es la que tiene.

La lectura la hago con la clase OdbcDataReader, guardando los "campos" del
fichero en un Array de objetos mediante GetValues. He intentado utilizar
el método GetBytes del DataReader, para luego convertirlo a string
mediante algún tipo de Encoding, pero no me funciona bien (algo debo estar
haciendo mal con ese método).

¿Alguien sabe si es posible solucionar esto con OdbcDataReader o tendré
que cambiar el código para usar un StreamReader, en el que sí es posible
especificar Encoding?

Gracias. Un saludo.

Preguntas similares