Konvertierungsfehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BlackJack

@rads: Bei dem Code hier:

Code: Alles auswählen

String contentConverted = new String(content.toString().getBytes(), UTF_8);
Was hat `content` für einen Typ? Und ist Dir klar das `getBytes()` ohne Argument problematisch ist, weil es vom System abhängt welche Kodierung da verwendet wird. Wenn das nicht mit der tatsächlichen Kodierung der Daten übereinstimmt, gibt's an der Stelle Probleme.

Ich denke Dein Problem hat was damit zu tun, dass Du versuchst Binärdaten auf der Java-Seite als `String`\s zu behandeln. Das geht nicht. `String` in Java entspricht `unicode` in Python. Darin haben Binärdaten nichts zu suchen. Das gleiche gilt für den `PrintWriter`. Wenn der nur `String` versenden kann, muss man die Binärdaten als Zeichenkette kodieren. Base64 ist eine Möglichkeit dafür.
rads
User
Beiträge: 153
Registriert: Freitag 26. März 2010, 15:51

BlackJack hat geschrieben:Was hat `content` für einen Typ?

Code: Alles auswählen

// request ^= HttpServletRequest
//getReader liefert einen BufferedReader
BufferedReader reader = request.getReader();
//Stringbuilder zum zeilenweise einlesen des Inhaltes
StringBuilder content = new StringBuilder();
BlackJack hat geschrieben:Ich denke Dein Problem hat was damit zu tun,
BlackJack hat geschrieben:Dir klar das `getBytes()` ohne Argument problematisch ist,
Nein genau das war mir nicht klar, hatte zwar schon einige verteilte Anwendungen
auf unterschiedlichen Systemem/Betreibssystemen/Architekturen und bis jetzt
kein Problem. Aber danke für den Hinweis, wenn das offenbar zu Fehlern führen kann
dann wird es vielleicht daran liegen.

Vielen Dank Blackjack, wie immer ein Beereicherung für mich :)
BlackJack hat geschrieben:Base64 ist eine Möglichkeit dafür.
Mach ich, nicht ideal aber immerhin eine funktionierende und hoffetlich robuste Lösung.
Antworten