Pregunta

He implementado un analizador SAX en Java extendiendo el controlador predeterminado. El XML tiene un & # 241; en su contenido Cuando golpea a este personaje se rompe. Imprimo la matriz de caracteres en el método de caracteres y simplemente termina con el carácter antes del & # 241 ;. El analizador parece detenerse después de esto, ya que no se llaman otros métodos a pesar de que todavía hay mucho más contenido. es decir, nunca se vuelve a llamar al método endElement. ¿Alguien se ha encontrado con este problema antes o tiene alguna sugerencia sobre cómo solucionarlo?

¿Fue útil?

Solución

¿Cuál es la codificación en el archivo? Asegúrese de que la decodificación de codificación del archivo coincida. Su analizador puede estar predeterminado a ASCII o ISO-8859-1. Puede configurar la codificación de esta manera

<?xml version="1.0" encoding="UTF-8"?>

UTF-8 cubrirá ese carácter, solo asegúrate de que ese es realmente el archivo.

Otros consejos

Si está guardando sus XML en ASCII, solo puede usar la mitad inferior (primeros 128 caracteres) de la tabla de caracteres de 8 bits. Para incluir caracteres acentuados u otros caracteres que no estén en inglés en su XML, deberá guardar su XML en UTF-8 o escapar de sus caracteres como & amp; # 241; para & # 241 ;.

Me enfrenté a este problema. El flujo XML que está alimentando debe leerlo como ascii, codificar ascii a 'UTF-8' dentro del código o cambiarlo a flujo de caracteres y todo estará bien.

algo como esto te ayudará:

File F = new File(C://Location);
BuffeReader Readfile = new BufferReader(F);
InputSource Encode = new InputSource(Readfile);
Encode.setEncoding("UTF-8");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top