2010-03-10 52 views

Respuesta

5

o bien el analizador está configurado para UTF-8, aunque el archivo se codifica de otra forma, o el archivo se declara como el uso de UTF-8, pero en realidad no lo hace.

18

lo más común es que se debe a alimentando ISO-8859-x (Latin-x, como Latin-1) pero analizador sintiendo 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 aquel basado en primer b yte, el segundo byte tiene bits inesperados de alto orden.

Esto puede ocurrir fácilmente cuando algún proceso vuelca a cabo XML usando Latin-1, pero o se olvida de salida XML declaración (en cuyo caso XML analizador debe por defecto a UTF-8, según XML especificaciones), o dice que es UTF-8 incluso cuando no es

+0

¿Alguna sugerencia sobre cómo solucionar eso? Me encontré con este problema al definir una tarea ant utilizando la biblioteca de terceros XMLTask. – AgentKnopf

+0

Eso es difícil entonces; de lo contrario, lo que normalmente se hace es crear explícitamente un InputStreamReader para una codificación específica, y luego darlo al analizador XML. Pero no estoy seguro de qué hacer con Ant ... aparte de arreglar el archivo XML por supuesto, si es posible. – StaxMan

+0

Descubrí el problema: en uno de mis xml tenía una Umlaut (ä, ö, ü) que de alguna manera se estropeó cuando convertí el archivo xml en diferentes formatos. Una vez que eliminé esa Umlaut, funcionó. – AgentKnopf

2

Puede intentar cambiar la codificación de caracteres predeterminada utilizada por String.getBytes() a utf-8. Use la opción VM -Dfile.encoding = utf-8.

2

Tuve el mismo problema. Mi problema fue que creé un nuevo archivo XML con jdom y el FileWriter (xmlFile). El FileWriter no pudo crear un archivo UTF-8. En su lugar, utilizando el FileOutputStream (xmlFile) lo resolvió.

1

Para aquellos que todavía cometen ese error.

desde UTF-8 se utiliza el registro de salida el documento XML para cualquier letras latinas o menos: tuve el mismo problema y la razón era que tenía esto:

<n:name>Åke Jógvan Øyvind</n:name> 

espero que esto ayude

0

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 de WordPad. 2. Guarde el archivo .rtf como archivo .txt, luego ábralo con el Bloc de notas y guárdelo como archivo .xml nuevamente. 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 la mía, espero que sea útil para la tuya también.

Cuestiones relacionadas