Erreur SAX - MalformedByteSequenceException: Octet non valide 1 de la séquence UTF-8 sur 1 octet.

Erreur SAX - MalformedByteSequenceException: octet 1 non valide de la séquence UTF-8 à 1 octet.

Problème

Lorsque certains caractères UTF-8 spéciaux se trouvent dans un fichier XML et que l'analyseur de votre SAX n'est pas configuré pour analyser correctement l'UTF-8, l'exception suivante sera levée.

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:
Invalid byte 1 of 1-byte UTF-8 sequence.
...

Solution

La solution est assez simple, obtenez le contenu au format UTF-8 et remplacez la source d'entrée SAX.

File file = new File("c:\\file-utf.xml");
InputStream inputStream= new FileInputStream(file);
Reader reader = new InputStreamReader(inputStream,"UTF-8");

InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");

saxParser.parse(is, handler);

Vous pouvez lire l'exemple complet ici -how do read UTF-8 XML file with SAX parser