Veröffentlicht 25. August 201114 j Hallo, vielleicht könnt ihr mir da weiterhelfen. Ich habe einen String der URLEncoded ist und zwar unter ISO, den ich in einem Servlet decode: String newString = URLDecoder.decode(oldString, "ISO-8859-1"); Dies klappt bei allen Sonderzeichen außer bei dem Euro-Zeichen(€)! Ein Eurozeichen (iso -encoded %80) als String (decoded) wird zu einem nicht dargestellten Zeichen (String-Länge aber 1), das entsprechende Zeichen über eine UTF-8 codierten JSP wird jedoch als undefinierbares Zeichen dargestellt (Viereck mit Ziffern drin). Ich hätte aber gerne ein €-Zeichen:(. Hat da jemand einen Tipp? Mit freundlichen Grüßen, Jobe PS: Als Byte-Array ist dieses ominöse Zeichen [-62, -128] Bearbeitet 25. August 201114 j von Jobe2009
25. August 201114 j Das Eurozeichen ist nicht Bestandteil von iso-8859-1. Statt dessen könntest du mit iso-8859-15 dein Glück finden.
26. August 201114 j Hallo, danke für den Tipp. Leider hat dies nicht funktioniert... Ich habe jetzt eine "manuelle" Umwandlung per String.replace("%80", "€") eingebaut, das funktioniert. Mit freundlichen Grüßen, Jobe
26. August 201114 j ich würde dir empfehlen, statt der iso-8859-1 Kodierung utf-8 Kodierung zu verwenden meines Wissens verwenden Browser standardmäßi diese (bzw. eine andere Unicode-Kodierung) bei der Kodierung von URLs da für URLs (bzw. die mit einem % kodierten Zeichen) kein Zeichencode festgelegt ist, kann es zu Problemen führen, wenn auf Clientseite eine andere Codierung verwendet wird deine derzeitige Lösung halte ich eher für einen work-around, da es gerade dabei zu Kodierungsfehlern bei anderen Zeichencodes kommt in ISO-8859-15 hat das €-Zeichen die Nummer A4 (Hexadezimal) und nicht 80 (hast du das bei deinem Test berücksichtigt?)
29. August 201114 j Leider hab ich auf das Encoding der Seite keinen Einfluss sonst währe es ja einfach
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.