dedlfix: XHTML & utf-8

Beitrag lesen

echo $begrüßung;

eine meta Angabe möchte ich nur notfalls einfügen (es sollte auch ohne funktionieren).

Warum? Damit machst du nur dir und anderen das Leben schwer, wenn das Dokument lokal gespeichert werden soll, denn das passiert ohne HTTP-Header, und somit steht das Dokument gänzlich ohne Kodierungsangabe da.

Es scheint aber, dass weder Firefox noch IE utf-8 kodierte Dateien erkennen, wenn kein BOM dabei ist.

Das liegt daran, dass ein UTF-8-kodiertes Dokument immer auch mindestens ein gültiges ISO-8859-X Dokument ist. Ein Browser braucht viel Intelligenz, um die ursprüngliche Kodierung zu erraten. Eine Analyse müsste mittels Wörterbuchern der verschiedenen Sprachen geschehen und selbst dann ist das Rateergebnis ungewiss. Hinzu kommt noch, dass erstmal die Sprache erraten werden muss, was ohne Kodierungsangabe schwierig bis unmöglich ist - ein Henne-und-Ei-Problem.

Wie würdet ihr jetzt empfehlen, die Datei als utf-8 erkennbar zu machen bzw. wie macht ihr es selber?

Angabe in HTTP-Header und Meta-Äquivalent.

Soll ich per .htaccess den ContentType für .html und .css ändern, und in der php.ini einstellen, dass die Dateien als utf-8 gesendet werden? Reicht dazu die AddDefaultCharset-Direktive von Apache?

AddDefaultCharset wirkt auf alle text/plain- und text/html-Dokumente. In der php.ini ist die Angabe dann nicht mehr erforderlich. Außerdem kann der Content-Type-Header auch im Script mittels header() generiert werden.

echo "$verabschiedung $name";