UTF-8 und WWW-Eingabeformulare
Stefan Aumann
aumann at hrz.uni-marburg.de
Fr Jul 4 13:34:24 CEST 2003
Liebe Listenmitglieder,
bei der Vorbereitung einer Allegro-Datenbank für die Eingabe von Daten
in Fremdalphabeten (Arabisch, Griechisch) über ein WWW-Formular
habe ich die Erfahrung gemacht, dass es nicht ausreichend ist, im
<head> der HTML-Datei den zu verwendenden Zeichensatz in der folgenden
Form zu spezifizieren:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Vielmehr müssen - zumindest bei Verwendung der Server-Software Apache -
zusätzliche Vorkehrungen getroffen werden, um die Versendung des Apache-
eigenen Default-Zeichensatzes (iso-8859-1) im HTTP-Header zu unterbin-
den. Realisiert werden kann dies z.B. über eine .htaccess-Datei im
Verzeichnis, in dem auch die Formulardateien liegen. In meinem Fall
habe ich die folgende Direktive benutzt:
AddDefaultCharset utf-8 .html
Näheres zu AddDefaultCharset bzw. AddCharset finden Sie in der
Apache-Dokumentation:
http://httpd.apache.org/docs-2.0/mod/core.html#adddefaultcharset
http://httpd.apache.org/docs/mod/mod_mime.html#addcharset
In Braunschweig ist dieses Problem offensichtlich nicht aufgetreten,
da dort der Xitami-Server verwendet wird, der bei der Content-Type
Angabe im HTTP-Header auf die Zeichensatz-Spezifikation verzichtet:
HTTP/1.x 200 Ok
Content-Length: 4557
Content-Type: text/html
X-Powered-By: PHP/4.0.6
Server: Xitami
Die betreffende Angabe im Apache lautet dahingegen per Default:
Content-Type: text/html; charset=iso-8859-1
Durch das oben beschriebene Verfahren erreicht man, dass der HTTP-
Header wie gewünscht modifiziert wird:
Content-Type: text/html; charset=utf-8
Aus PHP-Skripten heraus nutze ich übrigens die header-Funktion:
header("Content-Type: text/html; charset=utf-8");
Viele Grüße
Stefan Aumann
--
Stefan Aumann M.A. @Hochschulrechenzentrum der Philipps-Univ. Marburg
Hans Meerwein Str. 35032 Marburg | fon +49 (0)6421 28-23561 fax -26994
Mehr Informationen über die Mailingliste Allegro