Tach!
Kann man das in der PHP-Funktion irgendwie so notieren, dass das nicht passiert, also dass die Kodierung UTF-8 ohne Byte Order Mask bestehen bleibt??
file_put_contents ändert die Kodierung nicht, sondern speichert die Daten so, wie sie vorliegen, in einer Datei. Wenn du die Kodierung bewusst beeinflussen willst, so musst du dies vorher tun. Dazu kannst du die Funktion iconv nutzen. D.h. vor dem file_put_contents sowas notieren:
$content = iconv("CP1252","UTF-8", $content);
Das ist ein wenig sinnvolles Vorgehen. Wenn man UTF-8 als Speicherformat nehmen möchte, dann sollte die gesamte Verarbeitungskette auf UTF-8 basieren (oder etwas anderem Unicode-kompatiblem). Es bringt doch nichts, wenn man nur maximal 256 Zeichen verarbeiten aber das gesamte Unicode-Spektrum speichern kann. Das Ziel darf nicht Konvertierung heißen sondern Sicherstellen der UTF-8-Verarbeitung auf ganzer Linie.
Das bedeutet - recht allgemein formuliert - zum einen, dass jedes System mit UTF-8 umgehen kann, oder es unverändert durchreicht. Und zum anderen, dass jedes System dem nachfolgenden korrekt eine Angabe zur Kodierung mitgibt und die Daten dann auch so kodiert weitergibt. Das Thema ist umfangreich aber im Wiki beschrieben: http://wiki.selfhtml.org/wiki/Zeichenkodierung
dedlfix.