Umlaute in Expression Language

Z

Zak256

Hallo,

In einem Servlet wird ein String mit Umlauten mit
Code:
java.net.URLEncoder.encode(message, "UTF-8");
codiert und als Parameter einer Seite übergeben, die mit response.sendRedirect aufgerufen wird.

Wenn ich in dieser Seite den Parameter mit
Code:
${param.message}
auslese, werden die Umlaute nicht richtig verarbeitet, obwohl ich an allen möglichen Stellen meiner Seite UTF-8 als Codierung angegeben habe (pageEncoding, XML-Kopfdaten, response- und request-Objekt).

Beispiel:
Code:
String message = "Dies ist ein Test mit Umläuten";

ergibt in der Browserleiste korrekt:
Code:
...?message=Dies+ist+ein+Test+mit+Umläuten

in der Seite steht jedoch:
Code:
Dies ist ein Test mit Umläuten

Ersetze ich manuell in der URL das (offensichtlich bereits decodierte) ä durch ein %E4 wird alles korrekt ausgegeben.

Was läuft da falsch bzw. wie kann ich das korrigieren?

Danke und sorry für die vielen Fragen, ich suche auch jedesmal alleine, die Ergebnisse helfen mir jedoch nicht weiter.

Zak
 
Genau diese lib habe ich bereits gefunden und momentan das Problem auch so gelöst, dass ich mit StringEscapeUtils.escapeHtml den Textparameter zunächst codiere (und dann in der EL dekodiere, wenn er nicht in der HTML-Seite sondern etwa als Wert einem Bean übergeben werden muss).

Es funktioniert zwar, jedoch vermute ich, dass es auch so funktionieren sollte. Genau für diese Probleme ist doch eigentlich das URL-encoding zuständig, oder nicht?

Gruß,
Zak
 

Neue Beiträge

Zurück