J'essaie d'analyser un document à partir d'octets comme suitoctet invalide 2 de la séquence de codage UTF-8 4 octets durant le document analyse syntaxique
String result = /* some valid xml document */
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
try {
Document document = parser.parse(new ByteArrayInputStream(result.getBytes()));
} catch (MalformedByteSequenceException e) {
System.out.println("(MalformedByteSequenceException) " + e.getMessage());
}
A MalformedByteSequenceException est jeté et la suivante est imprimée dans la console
"(MalformedByteSequenceException) Invalid byte 2 of 4-byte UTF-8 sequence."
la chose étrange est que le même code fonctionne dans mon environnement local (Windows 10), mais pas dans l'environnement à distance (Windows Server 2012)
j'ai essayé de reproduire le err ou dans mon environnement local changeant la version de TomEE, de 1.7.4 à 1.7.1, j'ai essayé de changer le JRE de 1.7.0_80 à 1.7.0, j'ai essayé de copier le dossier entier de Tomee du système à distance à ma machine locale, toujours le erreur se produit uniquement dans l'environnement distant
L'utilisation de result.getBytes(Charset.forName("UTF-8"))
au lieu de result.getBytes()
ne fonctionnait pas non plus.
Est-ce que votre fichier Unicode a un encodage dans le prologue? – bmargulies
le document xml provient d'une réponse webservice, pas d'un fichier –
Même question. Y a-t-il un encodage =? – bmargulies