UTF-8 mit PHP richtig ausliefern

Um ein WordPress-Plugin richtig betreiben zu können musste ich vor ein paar Tagen von PHP 5.2 auf PHP 5.3 umstellen. Der Schritt war sowieso schon längst überfällig. Leider wurden Umlaute auf einer meiner Seiten plötzlich nichtmehr korrekt dargestellt. Das Ganze konnte nur an einem UTF-8-Problem liegen.

Alle PHP-Dateien auf dem Server sind mit UTF-8 encodiert. Weiterhin wollte ich dem Browser das genutzte Encoding auf der Seite folgendermaßen mitteilen:

<meta http-equiv="content-type" content="text/html; charset=utf-8">

Diese Angabe scheint dem Browser aber plötzlich egal gewesen zu sein. Auch die Chome Developer Tools haben mir nicht verraten ob der Server im Header eventuell nun ein anderen Encoding mitgibt und das im HTML angegebene Encoding überschreibt. Also habe ich es nun nochmals explizit im HTTP-Header mitgeliefert – doppelt hält ja bekanntlicherweise eh besser.

if (!headers_sent()) {
	header('Content-Type: text/html; charset=utf-8');
}

Als dritte Möglichkeit kann man das Encoding auch in der .htaccess festlegen. Dabei hängt es aber stark vom Provider ab ob dies möglich ist, und ob die Angabe dann auch genutzt wird:

AddDefaultCharset utf-8

Beitrag veröffentlicht

in

, , , ,

von

Schlagwörter: