Re: Apache2: Standard charset ist nicht UTF-8
Thomas Kuster schrieb am 22.07.2009 20:44:
Am Wednesday 22 July 2009 14.33:17 schrieb Manfred Schmitt:
Thomas Kuster schrieb:
Dann bleibt nun nur noch die Frage offen wie ich dem Apache beibringen
kann den Header auf UTF-8 zu stellen wenn nichts angegeben ist anstelle
ISO zu setzen.
Aeh, das Thema hatten wir schon oder nicht?
http://httpd.apache.org/docs/2.0/mod/core.html#adddefaultcharset
Das habe ich auch nachgelesen und das Verhalten ist auch so wie beschrieben.
Nur möchte ich etwas anderes erreichen. Schreibe mal zwischen den Text von
httpd.apache.org dazwischen:
"Die Direktive gibt einen Standardwert für den Charset-Paramter des Medientyps
(den Namen einer Zeichencodierung) an, der einer Antwort genau dann
hinzugefügt wird, wenn der Content-Type der Antwort entweder text/plain oder
text/html ist. Dies sollte jedes mittels META-Element im Datenteil der
Antwort angegebene Charset überschreiben."
Setze ich das also, wird jedes Charset das mittels META-Element gesetzt wird
überschrieben. Ich möchte aber, dass das META-Element beachtet wird. Apache
aber wenn _keines_ gesetzt ist, im Header charset=UTF-8 setzt und nicht ISO….
Das Meta-Element (zwischen <head> und </head> im Html-Dokument) taugt
nicht zur Angabe eines Charsets. Es dient bei schlechten Browsern dazu,
die Seite mit dem richtigen Charset anzuzeigen, nachdem sie lokal
gespeichert wurde. Bessere Browser ändern das Meta-Element in der Datei
und nehmen den Charset des Http-Headers, wenn sie das Dokument speichern.
Mit anderen Worten, vergiss das Meta-Element und sorge dafür, dass die
Http-Header richtig sind.
"Das genaue Verhalten hängt jedoch oft von der Client-Konfiguration des
Benutzers ab."
Okay gut, kann auch dann mal in die Hose gehen. Priorität hat aber wohl
meistens die Info im Header.
Wichtig ist hier, welchen header du meinst (s.o.).
(...)
AddDefaultCharset sollte nur verwendet werden, wenn von allen Textressourcen,
für die es gilt, bekannt ist, dass sie in dieser Zeichkodierung vorliegen,
oder wenn es zu unbequem ist, ihre Zeichenkodierung indivuell zu benennen."
Ich würde an deiner Stelle eine Direktive nehmen:
http://httpd.apache.org/docs/2.2/configuring.html und
http://httpd.apache.org/docs/2.2/mod/core.html#directory
Genau mir ist es zu unbequem;-). Ich habe mir angewöhnt alles in UTF-8 zu
machen und wollte das nun auch bei den HTML-Seiten machen, raus kamen dann
halt kein Umlaute, da ich vorher immer ü und so Zeug verwendet habe und
mich daher auch nie um das META-Element für die Kodierung gekümmert habe.
Werde das nun aber schön brav immer notieren, macht ja auch Sinn.
Nee, macht keinen Sinn.
Wozu ueberhaupt der ganze Aufwand, hast Du eine Iso-Allergie? ;-)
Ja das auch:-).
:-)
viele Grüße,
Peter
Reply to: