Dienstag, 16. Dezember 2008

UTF-8 in HTML-Formularen

Bei einem HTML-Formular kann man den zu verwendenden Zeichensatz mit dem Parameter

accept-encoding="UTF-8"

auf UTF-8 stellen. Leider wird dieser Zeichensatz beim Abschicken des Formulars nicht mit übermittelt, so dass der Server raten muss, welcher Zeichensatz verwendet wurde. Und er rät immer "ISO-8859-1", so dass bei einem Formular mit UTF-8 die Umlaute falsch interpretiert werden. Abhilfe schafft der folgende Aufruf:

request.setCharacterEncoding("UTF-8");

er muss vor dem ersten request.getParameter() kommen, damit er funktioniert. Damit werden die Parameter als UTF-8 interpretiert und das Formular funktioniert.