Ich habe mehrere PHP- Seiten, die verschiedene Dinge in HTML- Seiten mit dem folgenden Code wiedergeben.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Wenn ich jedoch mit dem W3C-Validator validiere, wird Folgendes angezeigt :
Die im HTTP-Header (iso-8859-1) angegebene Zeichenkodierung unterscheidet sich vom Wert im Element (utf-8).
Ich bin ziemlich neu in PHP und habe mich gefragt, ob ich den Header für die PHP-Dateien so ändern könnte und sollte, dass er mit den HTML-Dateien übereinstimmt.
quelle
<meta>
Tag überhaupt nicht mehr benötigen, wenn Sie den HTTP-Header so richtig einstellen .META
wird verwendet, wenn das HTML-Dokument nicht über HTTP (z. B. von der Festplatte) geladen wird.Stellen Sie zunächst sicher, dass die PHP-Dateien selbst UTF-8- codiert sind.
Das Meta-Tag wird von einigen Browsern ignoriert. Wenn Sie nur ASCII-Zeichen verwenden, spielt es sowieso keine Rolle.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
quelle
Dies ist ein Problem, wenn Ihr Webserver einen HTTP-Header sendet, der nicht mit dem von Ihnen definierten übereinstimmt. Anweisungen dazu, wie der Server die richtigen Header sendet, finden Sie auf dieser Seite .
Andernfalls können Sie auch PHP verwenden, um die Header zu ändern. Dies muss jedoch erfolgen, bevor Sie Text mit diesem Code ausgeben:
Weitere Informationen zum Versenden von Headern mit PHP finden Sie in der Dokumentation zur Header-Funktion .
quelle
Sie können auch einen kürzeren Weg verwenden:
Siehe RFC 2616 . Es ist gültig, nur den Zeichensatz anzugeben.
quelle
Content-Type = "Content-Type" ":" media-type
undmedia-type = type "/" subtype *( ";" parameter )
Für eine korrekte Implementierung müssen Sie eine Reihe von Dingen ändern.
Datenbank (unmittelbar nach der Verbindung):
quelle
PHP sendet Header automatisch, wenn die interne Codierung verwendet wird:
quelle