2017-04-11 4 views
1

Wir haben einen ParseError beim Unmarshalling Unicode-Zeichen 0x1f609 (XML-Version 1.0).Jaxb nicht Unmarshalling Unicode 1F609

Es scheint dieser Dokumentation nach ein gültiges XML-Zeichen zu sein: https://www.w3.org/TR/xml/#charsets

einfach diesen Charakter zu entfernen keine Lösung wäre, weil es in Zukunft XML-Dokumente andere ähnliche Zeichen sein könnte.

Wie könnten wir das lösen? Ist es ein JAXB-Bug?

Oder müssen wir alle Zeichen innerhalb eines anderen Zeichenbereichs entfernen? (Zum Beispiel alle Emoticons: http://www.isthisthingon.org/unicode/index.phtml?page=1F&subpage=6&hilite=1F609#Emoticons)

Antwort

0
  • Zuerst überprüfen, was JVM Standard läuft Charset ist und was Ihre XML-Charset.

    JVM - System.getProperty("file.encoding")

    XML - <?xml version="1.0" encoding="UTF-8"?>

  • Wahrscheinlich, damit es funktioniert, Strings, wo solche Zeichen auftreten können, müssen entweder verwendet werden explizit URL codiert oder <![CDATA[ muss sein.

UPD: Auch müssen Sie prüfen, wie das Zeichen genau in Ihrer XML-Eingabe aussieht. Wenn es HTML-codiert ist als &#x1F609; oder &#128521; Problem ist genau & Zeichen nicht über "zwinkendes Gesicht". & kann nicht aus XML analysiert werden. Es muss entweder XML-codiert sein als &amp; oder in CDATA. Solange CDATA keine Option ist, müssen Sie möglicherweise einen Interceptor im Vorfeld haben, damit ein String XML-codiert wird.

+0

Der JVM-Standardzeichensatz ist auf Windows-1252 eingestellt. Wenn ich es zu ändern: 'System.setProperty (" file.encoding "," UTF-8 ");' unmarshalling schlägt erneut fehl. XML Encoding ist auf UTF-8 gesetzt, auch '' Die zweite Lösung (URL-Codierung oder ' JackDaRippa

+0

Bitte sehen Sie sich die aktualisierte Antwort an. Ich denke, das ist ein Problem. Nicht JAXB selbst. – Vadim

+0

Die Ausnahmebedingungsnachricht lautet wie folgt: 'verursacht durch: javax.xml.stream.XMLStreamException: ParseError um [Zeile, Spalte]: [4.274] Nachricht: ein ungültiges XML-Zeichen (Unicode: 0x1f609) wurde in dem Element gefunden Inhalt des Dokuments. Also ich denke, es ist korrekt XML-encodiert? – JackDaRippa

Verwandte Themen