ReadXML caracter invalido Ñ

07/10/2006 - 00:29 por Jaime Infante | Informe spam
Tengo un conjunto de datos, pero al leer un archivo XML me dice que contiene
caracteres invalidos, en este caso es la "Ñ" como puedo omitir este mensje
y que me deje poder leer esos caracteres.

Gracias
 

Leer las respuestas

#1 Alberto Poblacion [MVP]
07/10/2006 - 09:59 | Informe spam
"Jaime Infante" wrote in message
news:
Tengo un conjunto de datos, pero al leer un archivo XML me dice que
contiene
caracteres invalidos, en este caso es la "Ñ" como puedo omitir este mensje
y que me deje poder leer esos caracteres.



Hay que mirar en dos sitios, dependiendo de cómo proceses el archivo:
Uno es en el propio archivo XML, en la cabecera hay que indicar el juego de
caracteres utilizado, para que se pueda interpretar la Ñ:
<?xml version="1.0" encoding="utf-8" ?>

En el ejemplo anterior, la codificación sería UTF-8, y por tanto las
eñes que haya dentro de ese archivo tienes que grabarlas con el código que
les corresponda en utf-8. Si quieres usar el juego de caracteres de Windows,
cambia la cabecera a esta:
<?xml version="1.0" encoding="windows-1252" ?>

Una vez hecho lo anterior, las funciones de manipulación de XML de .Net
deben entender las eñes. Por ejemplo, si usas un Load() de XmlDocument para
leer el archivo, con esto basta.

Sin embargo, si no estás usando funciones de XML, sino que estás
abriendo el archivo por tu cuenta para tratarlo como si fuera un texto (por
ejemplo, con un StreamReader), entonces tienes que indicarle el juego de
caracteres al abrir el archivo:

Dim sr as New
StreamReader("miarchivo.xml",System.Text.Encoding.GetEncoding(1252))
string contenido=sr.ReadToEnd();
sr.Close()

Obviamente, si en lugar del juego de Windows has usado otro (típicamente
UTF8 para los archivos XML), tendrás que ponerlo debidamente en el
GetEncoding.

Preguntas similares