J'essaie d'analyser un fichier XML avec <?version = 1.0, encoding = UTF-8>
.__, mais j'ai rencontré un message d'erreur invalid byte 2 of 2-byte UTF-8 sequence
. Est-ce que quelqu'un sait ce qui a causé ce problème?
Le plus souvent, cela est dû à l'alimentation ISO-8859-x
(Latin-x, comme Latin-1), mais l'analyseur pense qu'il reçoit UTF-8
. Certaines séquences de caractères Latin-1 (deux caractères consécutifs avec des accents ou des trémas) constituent un élément non valide sous la forme UTF-8
, et plus précisément, de sorte que, en fonction du premier octet, le deuxième octet contient des bits de poids fort inattendus.
Cela peut facilement se produire lorsque certains processus extraient XML
à l'aide de Latin-1, mais oublient de générer la déclaration XML
(auquel cas l'analyseur XML
doit utiliser par défaut UTF-8
, conformément à la spécification XML
), ou déclare qu'il s'agit de UTF-8
même s'il ne l'est pas.
Soit l'analyseur est défini pour UTF-8 même si le fichier est encodé autrement, soit le fichier est déclaré comme utilisant UTF-8 mais ce n'est pas le cas.
Vous pouvez essayer de changer le codage de caractères par défaut utilisé par String.getBytes () en utf-8. Utilisez l'option VM -Dfile.encoding = utf-8.
J'ai eu le même problème. Mon problème était que j'ai créé un nouveau fichier XML avec jdom et le FileWriter (xmlFile). FileWriter n'a pas pu créer de fichier UTF-8 . Il a été résolu à l'aide de FileOutputStream (xmlFile)}.
Pour ceux qui ont encore une telle erreur.
depuis que UTF-8 est utilisé, vérifiez dans votre document xml les lettres latines ou autres: J'ai eu le même problème et la raison en était que j’avais ceci:
<n:name>Åke Jógvan Øyvind</n:name>
J'espère que cela t'aides
J'ai également rencontré le même problème lors de l'importation de mon fichier .xml dans mon outil Java. Et j'ai trouvé une bonne solution pour cela: 1. Ouvrez le fichier .xml avec Notepad ++, puis enregistrez le fichier .xml en tant que fichier .rtf. Ensuite, ouvrez ce fichier dans l'application WordPad. 2. Enregistrez le fichier .rtf en tant que fichier .txt, puis ouvrez-le avec le Bloc-notes, puis enregistrez-le à nouveau en tant que fichier .xml. Lorsque vous enregistrez dans le Bloc-notes, vers la fin de la fenêtre contextuelle, assurez-vous de bien choisir l'option "Encodage: UTF-8" . Cela a fonctionné pour le mien, espérons que cela sera utile pour le vôtre.