stoffel43: UFT-8 ohne BOM kein UTF-8

Beitrag lesen

Hallo,

wenn ich eine Datei als UTF-8 ohne BOM abspeichere

Wo abspeicherst und wie kommt die Datei dorthin?

Egal. Lokal anspeichern und per ftp auf dem Server, oder die Änderung der Codierung direkt auf dem Server.

und über den Webserver im Browser aufrufe dann steht die Codierung nicht auf UTF-8 und Sonderzeichen werden falsch ausgegeben. Wenn ich die Datei als "normales" UTF-8 abspeicher, dann klappt alles.

Was ist "normales" UTF-8 für dich? BOM ist für UTF-8 nicht erforderlich (UTF-8 kennt nur eine Byte-Richtung), es wird eher davon abgeraten BOM für UTF-8 zu verwenden.

Mit normal meine ich "mit BOM". Wenn ich die Datei so abspeicher, dann ist alles i.O. Wenn ich auch UTF8- ohen BOM ändere, dann klappt es mit dem Umlauten, die Codierung ist ISO...

Auch ein zusätzliches <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> bringt da nichts.

HTTP-Header hat vorrang. Ist er richtig gesetzt?

OK. der Header muss gesetzt werden. Dann klappt es. Ist nur komisch, dass es ohne gesetzten Header auch mit UTF-8 mit BOM auch klappt, ohne aber nicht.

Ich muss die Dateien als UTF-8 ohne BOM abspeichern, da es sonst z.B. nicht mit Sessions klappt ("headers already sent ").

Mache ich da was falsch?

Das passiert bei etwas älteren PHP-Versionen, da kommt es dazu, dass PHP erst gar nicht mehr dazukommt Header zu senden.

Grüße
Thomas

Muss ich eigentlich alle Dateien (css, js und alle includes) auch als UTF-8 Dateien abspeichern. Oder genügt das in der "Hauptdatei". Oder würde der gesetzte Header auch schon reichen?

Stoffel