Advertencia: Nota sin relevancia para el lector casual. Acepto saludos, completos y cervezas.
Haciendo unas validaciones de Schema contra ciertos XML que estoy recibiendo me enfrenté a un error recurrente:
Lo peor de todo es que a simple vista no había nada extraño o fuera de lugar en el XML. Después de realizar algunas pruebas y de buscar en Google, di con la respuesta. Lo que sucede es que se gatilla este error cuando la codificación del archivo no concuerda con lo especificado en la cabecera del XML, ie: si mi cabecera dice
Dado eso sospeché que el archivo estaba en otra codificación, como por ejemplo WINDOWS-1252, o ISO-8859-1, cambié la definición a ISO, y funcionó sin problemas. El truco para asegurarse de ser consistente con los encodings es:
Haciendo unas validaciones de Schema contra ciertos XML que estoy recibiendo me enfrenté a un error recurrente:
Invalid byte 2 of 2-byte UTF-8 sequence
Lo peor de todo es que a simple vista no había nada extraño o fuera de lugar en el XML. Después de realizar algunas pruebas y de buscar en Google, di con la respuesta. Lo que sucede es que se gatilla este error cuando la codificación del archivo no concuerda con lo especificado en la cabecera del XML, ie: si mi cabecera dice
< ?xml version="1.0" encoding="UTF-8"? >
se esperará que el archivo efectivamente este almacenado como UTF-8.Dado eso sospeché que el archivo estaba en otra codificación, como por ejemplo WINDOWS-1252, o ISO-8859-1, cambié la definición a ISO, y funcionó sin problemas. El truco para asegurarse de ser consistente con los encodings es:
- O pasar el parámetro -Dfile.encoding=UTF-8 (en mi caso era UTF-8) como parámetro del comando java
- O rescatar los Strings especificando la codificación de caracteres, y guardando los archivos como ByteStreams especificando el encoding.
No en vano dicen que el encoding es uno de los monstruos y pesadillas de los desarrolladores de software.
Referencia: http://www.biglist.com/lists/xsl-list/archives/200702/msg00044.html
Referencia: http://www.biglist.com/lists/xsl-list/archives/200702/msg00044.html
No hay comentarios.:
Publicar un comentario