java - secuencia - invalid byte 2 of 3 byte utf 8 sequence
byte no válido 2 de la secuencia UTF-8 de 2 bytes (6)
Estoy intentando analizar un archivo XML con <?version = 1.0, encoding = UTF-8>
pero encontré un mensaje de error de invalid byte 2 of 2-byte UTF-8 sequence
. ¿Alguien sabe qué causó este problema?
Más comúnmente es debido a la alimentación de ISO-8859-x
(Latin-x, como Latin-1), pero el analizador piensa que está obteniendo UTF-8
. Ciertas secuencias de caracteres Latin-1 (dos caracteres consecutivos con acentos o diéresis) forman algo que no es válido como UTF-8
, y específicamente de tal forma que, según el primer byte, el segundo byte tiene bits de orden superior inesperados.
Esto puede ocurrir fácilmente cuando algún proceso descarga XML
utilizando Latin-1, pero se olvida de generar la declaración XML
(en cuyo caso el analizador XML
debe predeterminarse a UTF-8
, según las especificaciones de XML
), o reclama que es UTF-8
incluso cuando no es
O bien el analizador está configurado para UTF-8 aunque el archivo esté codificado de otra manera, o el archivo se declara como usando UTF-8 pero realmente no lo hace.
Para aquellos que todavía cometen tal error.
ya que se está utilizando UTF-8, revise su documento xml en busca de letras latinas o así: tuve el mismo problema y la razón fue que tuve esto:
<n:name>Åke Jógvan Øyvind</n:name>
Espero que esto ayude
Podría intentar cambiar la codificación de caracteres predeterminada utilizada por String.getBytes () a utf-8. Utilice la opción VM -Dfile.encoding = utf-8.
También tuve el mismo problema al intentar importar mi archivo .xml en mi herramienta java. Y encontré una buena solución para esto: 1. Abra el archivo .xml con Notepad ++ y luego guarde el archivo .xml como archivo .rtf. A continuación, abra este archivo en la aplicación WordPad. 2. Guarde el archivo .rtf como archivo .txt, luego ábralo con el Bloc de notas y guárdelo nuevamente como archivo .xml. Al guardar en el Bloc de notas, cerca del final de la ventana emergente, asegúrese de elegir la opción "Codificación: UTF-8". Funcionó para el mío, espero que sea útil para el tuyo también.
Yo tuve el mismo problema. Mi problema fue que creé un nuevo archivo XML con jdom y FileWriter (xmlFile) . FileWriter no pudo crear un archivo UTF-8. En su lugar, resolvió FileOutputStream (xmlFile) .