====== Character-Encoding bei Servlets auf UTF-8 ändern ====== Normalerweise sollte der Browser des Clients die Kodierung der Parameter mitschicken. Fehlt diese Angabe, nehmen einige Web-Server automatisch ISO-8859-1 an. Dies ist jedoch oft nicht erwünscht und kann zu Problemen führen. Möglicherweise werden Parameter nicht richtig interpretiert, da der Server die GET- und POST-Parameter falsch dekodiert. Um die Kodierung auf UTF-8 zu ändern, müssen nur wenige Änderungen vorgenommen werden.\\ ===== HTML ===== Jede HTML-Seite sollte innerhalb des "head"-Tags diesen Eintrag haben: ===== Apache Tomcat ===== ==== web.xml ==== Folgender Text muss sich in der Datei web.xml innerhalb des "webapp"-Tags befinden: Parameter-Encoding org.apache.catalina.filters.SetCharacterEncodingFilter encoding UTF-8 Parameter-Encoding /* Diese Angaben setzen einen UTF-8-Filter auf alle Servlets (Wildcard /*). Die verwendete Klasse ''org.apache.catalina.filters.SetCharacterEncodingFilter'' ist ab einer bestimmten Version (7.0.*) in Tomcat integriert. ==== server.xml ==== Schlussendlich muss die Kodierung noch in der Server-Konfiguration angegeben werden. Die Datei server.xml befindet sich im Ordner "conf" des Server-Verzeichnisses. ===== Jetty ===== Bei Jetty, dem unter anderem im Google App Engine verwendeten Server, muss nur folgender Code in jedes Servlet eingebaut werden: request.setCharacterEncoding("UTF-8"); ''request'' ist das vom Server an die Methoden ''doGet()'' und ''doPost()'' bzw. ''processRequest()'' übergebene ''HttpServletRequest''-Objekt. Dieser Aufruf muss natürlich vor jeder Parameter-Abfrage geschehen. Am praktischsten erledigt man das mit einer gemeinsamen Basisklasse für alle Servlets, die diese Methode automatisch aufruft.