Umlaute an Servlet übergeben

SeeSharpNewBee

Erfahrenes Mitglied
Hi,

ich habe ein Problem bei der Übergabe von Text an ein Servlet über doPost, und zwar ist der Zeichensatz der Seite UTF-8, und wenn ich das Formular absende dann werden die Umlaute durch irgendwelche Zeichen ersetzt.

Wie kann ich das verhindern, bzw. den Text "so wie er ist" übergeben? Danke!


EDIT: Hab mich falsch ausgedrückt, ich möchte daten per GET übertragen. Ich mach das folgend:

Code:
String var = URLEncoder.encode("Das ist eine Übung", "UTF-8);

hänge die variable dann per "?var=" an die Url, und möchte dann auf der nächsten Seite die Variable wieder mit

Code:
String var = URLDecoder.decode(request.getParameter("var","UTF-8");
auslesen, jedoch funktioniert das nicht, bitte Hilfe!

Danke!
 
Zuletzt bearbeitet:
Hi,

mit welchem Applikationsser arbeitest du? Ich selbst verwende Tomcat, und habe das Problem mittels eines Filters beheben können. Seitdem werden Umlaute sowie auch Leerzeichen (statt %....) richtig übergeben.

Mehr Hilfe findest du denke ich unter dem Stichwort "CharsetFilter". Hier mein Beispielcode:

package org.klevershop.tomcat.charsetfilter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class CharsetFilter implements Filter {

private String encoding;

public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
encoding = config.getInitParameter("encoding");

if (encoding == null)
encoding = "UTF-8";
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain next) throws IOException, ServletException {
// TODO Auto-generated method stub
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);

next.doFilter(request, response);
}

public void destroy() {
// TODO Auto-generated method stub
;
}

}

Gruss,
Cengiz
 
Zurück