2010-03-10 6 views

Antwort

5

Entweder der Parser wird für UTF-8, obwohl die Datei auf andere Weise codiert ist, oder die Datei als UTF-8 deklariert, aber es ist wirklich nicht.

18

Am häufigsten wegen es ist zu Fütterung ISO-8859-x (Latein-x, wie Latin-1), aber Parser dachte, es UTF-8 erhält. Bestimmte Sequenzen von Latin-1-Zeichen (zwei aufeinanderfolgende Zeichen mit Akzenten oder Umlauten) Form etwas, das als UTF-8, und zwar so, ungültig ist, dass auf der Grundlage zuerst b yte, zweites Byte hat unerwartete höherwertige Bits.

Dies kann leicht auftreten, wenn einige Verfahren XML Latin-1 unter Verwendung von Deponien, aber entweder vergisst zur Ausgabe XML Erklärung (in diesem Fall XML Parser UTF-8, wie pro XML Spezifikationen Standard muss), oder behauptet, dass es UTF-8 auch wenn es ist nicht.

+0

Irgendwelche Vorschläge, wie Sie das beheben können? Ich bin auf dieses Problem gestoßen, als ich eine Ameisenaufgabe unter Verwendung der 3rd-Party-Bibliothek XMLTask definierte. – AgentKnopf

+0

Das ist hart dann; Andernfalls wird normalerweise explizit ein InputStreamReader für eine bestimmte Codierung erstellt und dann an den XML-Parser übergeben. Aber nicht sicher, was mit Ant zu tun ist ... abgesehen davon, XML-Datei selbst zu reparieren, natürlich wenn möglich. – StaxMan

+0

Ich habe das Problem herausgefunden - In einem meiner Xmls hatte ich einen Umlaut (ä, ö, ü), der irgendwie kaputt ging, als ich die XML-Datei in andere Formate umwandelte. Sobald ich diesen Umlaut entfernt habe, hat es geklappt. – AgentKnopf

2

Sie könnten versuchen, Standard-Zeichenkodierung von String.getBytes() auf utf-8 zu ändern. Verwenden Sie die VM-Option -Dfile.encoding = utf-8.

2

hatte ich das gleiche Problem. Mein Problem war, dass ich eine neue XML-Datei mit jdom und FileWriter (xmlFile) erstellt habe. Der FileWriter konnte keine UTF-8-Datei erstellen. Statt mit dem Fileoutputstream (xmlFile) es gelöst.

1

Für diejenigen, die noch solche Fehler bekommen.

da UTF-8 XML-Dokument Check-out für alle lateinischen Buchstaben verwendet oder so: ich hatte das gleiche Problem und der Grund war ich habe dies:

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

hoffte, das hilft

0

Ich hatte das gleiche Problem auch beim Importieren meiner XML-Datei in mein Java-Tool. Und ich fand eine gute Lösung dafür: 1. Öffnen Sie die .xml-Datei mit Notepad ++ und speichern Sie dann die .xml-Datei als. RTF-Datei. Öffnen Sie dann diese Datei in der WordPad-Anwendung. 2. Speichern Sie die RTF-Datei als TXT-Datei, öffnen Sie sie dann mit dem Editor, und speichern Sie sie erneut als XML-Datei. Vergewissern Sie sich beim Speichern im Editor am Ende des Popup-Fensters, dass Sie die Option "Encoding: UTF-8" auswählen. Es funktionierte für meine, hoffe, es ist auch nützlich für Ihre.