In mijn programma pak in XML berichten op en trek ik daar via SAX een aantal kenmerken uit.
Dat doe ik als volgt:
Dit XML bericht bevat diakritische tekens. Bijvoorbeeld: ï é ò û.... Je kent ze wel.
Daar hangt ie dus op (berichten zonder gaan wel goed). De fout boodschap die ik krijg is als volgt:
Ik heb al geprobeerd om de parameter "-Djava.lang.encoding=UTF-8" mee te geven als ik de applicatie start, maar dat werkt dus niet.
Enig idee hoe ik ervoor kan zorgen dat de Diakritische tekens gewoon gelezen worden?
(Zonder mijn bron XML bestanden te wijzigen dus... Die zijn nou eenmaal zo, daar kan ik niks aan doen.)
Alvast bedankt!
Dat doe ik als volgt:
Java:
Verder niet zo interessant. Het gaat mis bij het parsen van de InputStream. Deze stream bevat dus het XML bericht, dat moge duidelijk zijn. 1
2
3
4
5
6
7
8
9
| private boolean informatieUitAanvraagOphalen(InputStream deStream) { try{ DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse(deStream); ... |
Dit XML bericht bevat diakritische tekens. Bijvoorbeeld: ï é ò û.... Je kent ze wel.
Daar hangt ie dus op (berichten zonder gaan wel goed). De fout boodschap die ik krijg is als volgt:
code:
De XML bestanden zijn voorzien van "encoding="UTF-8" " clausule... 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence. at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source) at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source) at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at javax.xml.parsers.DocumentBuilder.parse(Unknown Source) at hatt.HDNAanvraag.informatieUitAanvraagOphalen(HDNAanvraag.java:64) ... |
Ik heb al geprobeerd om de parameter "-Djava.lang.encoding=UTF-8" mee te geven als ik de applicatie start, maar dat werkt dus niet.
Enig idee hoe ik ervoor kan zorgen dat de Diakritische tekens gewoon gelezen worden?
(Zonder mijn bron XML bestanden te wijzigen dus... Die zijn nou eenmaal zo, daar kan ik niks aan doen.)
Alvast bedankt!