Moin,
ich hänge immer noch an meinem kleinen Problem mit dem Abrufen einer XML über ne URLConnection. Inzwischen funktioniert alles einwandfrei, sprich ich bekomme die Daten zuverlässig, allerdings killt es mir die Umlaute. Und ich habe nicht die geringste Ahnung warum. Ich habs auch mit verschiedenen Codierungen versucht. Hier mal der Code den ich verwende:
Im normalen Editor werden mir die Umlaute dann auch angezeigt, aber sowohl Notepad++, als auch Egde als auch die Software welche die XML dann verwendet haben Umlautfehler. Wenn ich versuche das ganze so wie es in der XML auch steht auf ISO_8859_1 zu encoden, dann sehen die Umlaute sogar noch kaputter aus als sonst. Hier auch noch mal die XML die ich raus bekomme:
Wenn ich aus das Encoding ISO_8859_1 verwende, sieht der Umlaut so aus: "AOK Baden-Württemberg". Hat vielleicht irgendjemand eine Idee wie ich das Encoding richtig machen muss, bzw. wo ich vergessen habe das Encoding einzustellen? Aus den Tipps von Google bin ich leider nicht wirklich schlau geworden, weil die haben auch alle nur das Encoding im Buffer gemacht.
Danke euch schon einmal im Voraus.
ich hänge immer noch an meinem kleinen Problem mit dem Abrufen einer XML über ne URLConnection. Inzwischen funktioniert alles einwandfrei, sprich ich bekomme die Daten zuverlässig, allerdings killt es mir die Umlaute. Und ich habe nicht die geringste Ahnung warum. Ich habs auch mit verschiedenen Codierungen versucht. Hier mal der Code den ich verwende:
Java:
private void GetXML(String urlRaw, String filePath) throws MalformedURLException, IOException {
URL url = new URL(urlRaw);
java.util.Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost","xx.xx.xx.xx");
systemProperties.setProperty("http.proxyPort","3128");
URLConnection request;
if(url.getProtocol().equals("https")) {
HttpsURLConnection.setDefaultHostnameVerifier((host, sess) -> "aspserver.topm.de".equals(host));
request = (HttpsURLConnection)url.openConnection();
} else {
request = (HttpURLConnection)url.openConnection();
}
BufferedWriter sw;
try (BufferedReader sr = new BufferedReader(new InputStreamReader(request.getInputStream(), StandardCharsets.UTF_8))) {
sw = new BufferedWriter(new FileWriter(new File(filePath)));
String line;
while ((line = sr.readLine()) != null) {
sw.write(line);
sw.newLine();
}
}
sw.close();
}
Im normalen Editor werden mir die Umlaute dann auch angezeigt, aber sowohl Notepad++, als auch Egde als auch die Software welche die XML dann verwendet haben Umlautfehler. Wenn ich versuche das ganze so wie es in der XML auch steht auf ISO_8859_1 zu encoden, dann sehen die Umlaute sogar noch kaputter aus als sonst. Hier auch noch mal die XML die ich raus bekomme:
XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Daten>
<Result>
<Funktion>API-ABRECHNUNG1</Funktion>
<Zeitpunkt>Fr 13.03.2020 09:23:54.037</Zeitpunkt>
<Code>00</Code>
<Text>OK</Text>
</Result>
<Abrechnung1>
<Adressnummer>50047</Adressnummer>
<Name>AOK Baden-Württemberg</Name>
<Abrechnung>
<Beleg>000013-453433</Beleg>
<Rechnungsnummer>970121</Rechnungsnummer>
<Datum>20.02.2002</Datum>
<Status>0</Status>
<Summe>76.37</Summe>
</Abrechnung>
</Abrechnung1>
<Abrechnung1>
<Adressnummer>50048</Adressnummer>
<Name>Techniker-Krankenkasse</Name>
</Abrechnung1>
<Abrechnung1>
<Adressnummer>50049</Adressnummer>
<Name>Abrechnungsstelle Bobingen</Name>
<Abrechnung>
<Beleg>000006-52CD3F</Beleg>
<Rechnungsnummer>970063</Rechnungsnummer>
<Datum>18.06.2004</Datum>
<Status>0</Status>
<Summe>90.09</Summe>
</Abrechnung>
<Abrechnung>
<Beleg>000011-51BA34</Beleg>
<Rechnungsnummer>970080</Rechnungsnummer>
<Datum>20.02.2002</Datum>
<Status>0</Status>
<Summe>68.77</Summe>
</Abrechnung>
</Abrechnung1>
</Daten>
Wenn ich aus das Encoding ISO_8859_1 verwende, sieht der Umlaut so aus: "AOK Baden-Württemberg". Hat vielleicht irgendjemand eine Idee wie ich das Encoding richtig machen muss, bzw. wo ich vergessen habe das Encoding einzustellen? Aus den Tipps von Google bin ich leider nicht wirklich schlau geworden, weil die haben auch alle nur das Encoding im Buffer gemacht.
Danke euch schon einmal im Voraus.