Samstag, August 18, 2012

Tomcat und UTF-8

Laut Dokumentation verarbeitet der Tomcat Container per Default das Encoding ISO-8859-1 (siehe Tomcat Wiki oder HTTP 1.1 Spezifikation des W3C). jQuery verwendet per Default für das Senden von Ajax Events das Encoding UTF-8 (Siehe dazu in der jQuery Beschreibung). Im ersten Schritt muss dem Tomcat beigebracht werden, Request mit dem für uns richtigen Encoding zu verarbeiten. Dazu muss die Datei server.xml im conf Verzeichnis der Tomcat Installation angepasst werden (Eine Beschreibung findet sich zu diesem Thema ebenfalls hier). Dazu wird die Connector Definition um das Attribut URIEncoding="UTF-8" erweitert.
<Connector port="8080"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
    URIEncoding="UTF-8"/>
Im Anschluss ist dafür zu sorgen, dass das ausgelieferte Response ebenfalls mit UTF-8 kodiert wird. Dazu gibt es die folgende Möglichkeiten.
  • Innerhalb einer JSP Seite:
    <%@ page language="java"
        contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
  • Für HTML 5 (Angabe über das Meta Tag):
    <meta charset="UTF-8">
        
  • Für HTML 4:
    <meta http-equiv="Content-type"
        content="text/html;charset=UTF-8">
        
Dabei ist sicherzustellen, dass die ausgelieferten Daten ebenfalls UTF-8 kodiert sind. Im einfachsten Fall ist der HTML Editor auf das entsprechende Encoding einzustellen.
Zum Abschluss noch ein Link mit einer Erklärung über den Unterschied von GET und POST: GET versus POST

Keine Kommentare:

Kommentar veröffentlichen

AssertJ und java.util.List

AssertJ hat eine praktische Möglichkeit, Listen in JUnit Tests abzuprüfen. Insbesondere, wenn in der Liste komplexe Objekte abgelegt sind, s...