PHP: UTF-8 und header()

[code=““““]Warning: Cannot modify header information – headers already sent by (output started at index.php:1) in index.php on line 13[/code]

Diese Fehlermeldung zeigt sich, wenn man eine in UTF-8 konvertierte PHP Datei hat und mit der Funktion header() selbigen Ändern möchte.
Das Problem entsteht, wenn ein BOM (Byte Order Mask) am Anfang der Datei steht. In Editoren, die UTF-8 nicht unterstützen erscheint dann zum Beispiel ein „“ (entspricht Bytefolge: EF BB BF).
Der PHP-Parser kann diese Bytefolge nicht interpretieren und gibt sie schlichtweg aus bevor auch nur irgend etwas anderes ausgegeben werden kann.
Da in UTF-8 dieser BOM zwar erlaubt, aber nicht nötig ist kann man ihn einfach entfernen. Ermöglichen tut das zum Beispiel Notepad++ ([Format]->[Formatieren zu UTF-8 ohne BOM]).
Mit PHP ab Version 6 soll dieses „Problem“ gelöst werden.
Mehr zum Thema Byte Order Mask.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.