dedlfix: PHP Interpreter verändert meine Dateien

Beitrag lesen

Hi!

in utf8 gespeichert und angezeigt mit dem Browser Mozilla 1.7.11. Als ich danch wieder nach meiner .php Datei schaute, war die plötzlich in ANSI neu gespeichert und statt dem 'ü' war da ein 'ü' zu lesen. Das Problem ist nachvollziehbar ;-)
Frage: Welche Einstellung um Gottes Willen veranlasst PHP, meine Datei zu verändern?

Nichts. PHP macht da gar nichts. Alles ist (dem technischen Stand entsprechend) bestens. Es ist in keinem der bekannten Dateisystemen vorgesehen, dass zu einer Datei vermerkt wird, in welcher Kodierung die darin befindlichen Daten abgelegt sind. Es gibt (leider) auch keine Metadaten, die stets an einer Datei hängen, in denen solche Information abgelegt werden könnten. Es ist also für kein Programm möglich, die verwendete Kodierung herauszubekommen und den Inhalt dementsprechend zu interpretieren.

Wenn du also eine Datei öffnest, und dem Editor nicht bekanntgibst, gemäß welcher Kodierung sie zu interpretieren sei, ist das Ergebnis zufällig. Die Information "ist in XY gespeichert" existiert nicht. Wenn das lesende Programm denkt, es sei "ANSI", dann siehtst du da das ü, wenn es annimmt, es sei UTF-8, dann bekämest du das ü.

Die einzige Möglichkeit, eine UTF-8-Datei zu erkennen wäre die BOM, aber die will man aus gutem Grund nicht.

Wenn du vorwiegend mit UTF-8 arbeitest, stell deine Werkzeuge so ein, dass sie UTF-8 als Default-Kodierung verwenden.

Lo!