wenn ich eine Datei als UTF-8 ohne BOM abspeichere 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.
Auch ein zusätzliches <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> bringt da nichts.
Vermutlich schickt der Server seinerseits die Content-Type-Zeile schon im HTTP-Kopf, aber mit einer anderen Kodierung; in diesem Durcheinander gewinnt dann diese vor der <meta>-Zeile.
Falls du Firefox installiert hast, schau dir mit LiveHTTPHeaders an, was gesendet wird, oder nenne die betroffene URL.
Die Serverausgabe kannst du im Falle des Apache mit AddDefaultCharset, AddCharset und RemoveCharset ändern.
Ich muss die Dateien als UTF-8 ohne BOM abspeichern, da es sonst z.B. nicht mit Sessions klappt ("headers already sent ").
Das Aktivieren des Ausgabepuffers erweist sich nicht nur in solchen Fällen als nützlich, behebt allerdings nicht die Ursache deines Problems (auch wenn es bei dir mit deinem Browser so aussehen mag).