JSP-Parameter mit Umlauten (UTF-8)

berniebert

Grünschnabel
Hallo zusammen,
in meiner jsp-Umgebung (Struts) möchte ich Parameter mit Umlauten übergeben. dazu habe ich alles in UTF-8 codiert. Leider funktioniert es trotzdem nicht.

Meine JSP-Seite sieht so aus:

HTML:
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
...
<html>
  <head>
...
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  </head>
  <body>
...
<a href="browse.do?state=<bean:write name="states" property="state"/>" title="Details"><bean:write name="states" property="state"/></a>
</body>

Auf dem Server gibt es einen CharSet Filter, so dass alle requests in UTF-8 codiert werden.

Trotzdem passiert das:
Umlaute werden auf der jsp seite richtig dargestellt, und in der URL auch codiert:


Beim Verarbeiten in der Java-Klasse geht es allerdings schief:
Code:
String state = request.getParameter("state");
PrintStream ps = new PrintStream(System.out, true, "UTF-8");
ps.println(state); // --> ?ɬñsterreich

Weiss da jemand um Rat? Das Thema ist schon 1000x diskutiert worden, aber ich habe trotzdem keine Lösung gefunden...

Danke! B.
 
Ein herzliches Hallo an alle Web-app-coder!

Wenn ihr Java nutzt dann müsst ihr folgende Zeile (Zeile 1) auf der Zielseite vor der Parameter-Übernahme platzieren, dann werden Umlaute korrekt interpretiert:

Java:
request.setCharacterEncoding("UTF-8"); // <- für die korrekte Übernahme von Umlauten

// 2 Beispielparameter:
String name = request.getParameter("f_name");
String country = request.getParameter("f_country");
// Z.B: Österreich würde korrekt in country gespeichert.

Vorraussetzung ist natürlich, dass eure Seiten die UTF-8 Zeichenkodierung nutzen.
Sprich, wenn sie solche Zeilen bereits enthalten:

HTML:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
. . .
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


Für Berniebert kommt diese Info gewiss einige Jahre zuspät, aber anderen sei damit gern geholfen.

Viele Grüße,
Lonestar
 
Zuletzt bearbeitet:
Zurück