Danny787
Ensign
- Registriert
- Jan. 2007
- Beiträge
- 180
Hallo liebe Community,
ich habe ein kleines Encoding Problem, welches mich bald noch wahnsinnig macht.
Ich bekomme es einfach nicht hin, dass die Umlaute in meiner Android App korrekt dargestellt werden.
Zunächst mal eine kurze Problembeschreibung:
Im ersten Schritt öffne ich eine HttpUrlConnection und erzeuge mir anschließend den HTML-Seiten Content in Form eines StringBuilders mithilfe eines BufferReaders
Im nächste Schritt übergebe ich den erzeugten StringBuilder meine Jsoup parser, wo ich dann die gewünschten Inhalte rausparse:
Im letzten Schritt werden dann die geparsten Strings in einer Sqlite Datenbank gespeichert.
Wenn ich nun meine App starte, dann werden die Umlaute nicht korrekt dargestellt, sondern einfach in Form eines ? ausgegeben. Wenn ich mir die geparsten Strings auf der Console ausgeben lasse, dann werden die Umlaute allerdings korrekt ausgegeben. Nur eben in der App nicht.
Hat vielleicht jemand eine Idee woran das liegen könnte?
Vielen dank schon mal im voraus für eure Hilfe!
Ich habe die Lösung inzwischen gefunden. Falls es jemanden interessiert:
Das Problem bestand darin, dass die HTML-Seite ein ISO-8859-1 Encoding hatte.
Mit folgender Änderung hat es dann funktioniert:
BufferedReader reader = new BufferedReader(
new InputStreamReader(con.getInputStream(), "ISO-8859-1"));
ich habe ein kleines Encoding Problem, welches mich bald noch wahnsinnig macht.
Ich bekomme es einfach nicht hin, dass die Umlaute in meiner Android App korrekt dargestellt werden.
Zunächst mal eine kurze Problembeschreibung:
Im ersten Schritt öffne ich eine HttpUrlConnection und erzeuge mir anschließend den HTML-Seiten Content in Form eines StringBuilders mithilfe eines BufferReaders
Code:
HttpURLConnection con = (HttpURLConnection) url
.openConnection();
// SessionID mitgeben
con.setRequestProperty("Cookie", cookie);
con.addRequestProperty("Cookie",
response.getFirstHeader("Set-Cookie").getValue());
StringBuilder total = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String line2 = null;
while ((line2 = reader.readLine()) != null) {
total.append(line2);
}
Im nächste Schritt übergebe ich den erzeugten StringBuilder meine Jsoup parser, wo ich dann die gewünschten Inhalte rausparse:
Code:
Document doc = Jsoup.parse(total.toString());
Im letzten Schritt werden dann die geparsten Strings in einer Sqlite Datenbank gespeichert.
Wenn ich nun meine App starte, dann werden die Umlaute nicht korrekt dargestellt, sondern einfach in Form eines ? ausgegeben. Wenn ich mir die geparsten Strings auf der Console ausgeben lasse, dann werden die Umlaute allerdings korrekt ausgegeben. Nur eben in der App nicht.
Hat vielleicht jemand eine Idee woran das liegen könnte?
Vielen dank schon mal im voraus für eure Hilfe!
Ich habe die Lösung inzwischen gefunden. Falls es jemanden interessiert:
Das Problem bestand darin, dass die HTML-Seite ein ISO-8859-1 Encoding hatte.
Mit folgender Änderung hat es dann funktioniert:
BufferedReader reader = new BufferedReader(
new InputStreamReader(con.getInputStream(), "ISO-8859-1"));
Zuletzt bearbeitet:
(Problem gelöst)