Sven Rautenberg: Bei UTF-8 keine header() möglich

Beitrag lesen

Moin!

Ich nehme an das das Problem damit zusammen hängt das vor jedem UTF-8-Dokument folgende Zeichenkette ausgegeben wird (sieht man nur wenn man auf Hex-Ansicht geht):



Das ist die BOM. Man braucht sie bei UTF-8 nicht, und sie stört PHP beim Headersenden, weil sie eine Ausgabe provoziert, die die Header abschickt.

Deshalb: PHP-Skripte ohne BOM speichern.

Wenn ich diese Zeichen lösche wird die Kodierung automatisch auf ANSI umgestellt. Kann man PHP irgendwie sagen das er Skripte UTF-8 kodiert verarbeiten soll?

Schuld ist dein Editor. Der sucht irgendwas, was ihn entscheiden läßt, ob die Datei UTF-8 oder nicht ist. Die BOM ist da sehr hilfreich. Wenn aber im Programmtext sonst nirgends Umlaute etc. benutzt werden, ist eine UTF-8-Datei identisch mit einer ANSI-Datei, der Editor kann es also nicht entscheiden.

Schreib testweise mal an den Anfang deines Skriptes einen PHP-Kommentar, in dem Umlaute enthalten sind. Ich habe das beispielsweise mal so gemacht:

  
<?php  
// ÜTF-8  

Dann weiß man optisch, dass die Datei UTF-8 ist, und der Editor erkennt am Dateianfang das UTF-8-Umlautzeichen und kann entsprechend reagieren.

- Sven Rautenberg

--
"Love your nation - respect the others."