Multi: UTF-8 und die Benutzer

Mahlzeit,

ich stelle einige Scripte (PHP und Perl) kostenlos bereit.
Ich hab mir schon lange angewöhnt, konsequent in UTF-8 zu arbeiten.

Des öfteren stellt sich jetzt aber das Problem, die User editieren die Configs unter Windows mit div. Editoren.
Der Effekt ist folgender Fehler (als Beispiel in PHP)


Warning: Cannot modify header information - headers already sent by

Ist klar, das ist die BOM, die auch dann im Browser sichtbar ist, selbst wenn die Warnings abgeschaltet sind.

Was mich jetzt interessiert, wie ist das am besten zu lösen? Ich hab zwar in der FAQ zu meinen Scripten drinstehen, wie sowas zu beheben ist (Speichern z.B. in Notepad, weil das Teil keine BOM kann), dummerweise sind ja viele Anwender nicht in der Lage, die FAQ zu lesen.
Die Scripte laufen zu 98% auf Linuxservern, nur eben das Editieren der Config zu 98% auf WIndows.

Wie sollte ich das Problem angehen? Die Config als ISO zu speichern ist ja auch nicht wirklich eine Lösung, da ich dann intern immer wieder nach UTF-8 konvertieren muss.

Bin gespannt auf eure Meinungen und Lösungsansätze. Im Prinzip gehts ja darum, die Unzulänglichkeiten von einigen Windows-Editoren und der Anwender zu umgehen.

  1. Hallo,

    wenn Du in PHP sowas hast wie:

    include 'config.inc.php';

    dann ersetze es doch durch

    ob_start ();  
    include 'config.inc.php';  
    ob_end_clean ();
    

    Dann wird die gesamte Ausgabe, die von der Config-Datei erzeugt wird, komplett ignoriert, inklusive des BOM.

    Bei Perl (hinreichend aktuellen Versionen zumindest) ist es dagegen m.W. so, dass das BOM sogar zur Encoding-Autodetection verwendet wird, d.h. das sollte alles eigentlich keine Probleme machen.

    Viele Grüße,
    Christian

    1. Mahlzeit,

      ob_start ();

      include 'config.inc.php';
      ob_end_clean ();

        
      Gute Idee, da hätte ich auch selber draufkommen können.  
      Das werde ich auf jeden Fall ausprobieren ob die Anfragen zum Problem dann weniger werden ;)  
        
      
      > Bei Perl (hinreichend aktuellen Versionen zumindest) ist es dagegen m.W. so, dass das BOM sogar zur Encoding-Autodetection verwendet wird, d.h. das sollte alles eigentlich keine Probleme machen.  
        
      Ok, dann brauch ich mir da erstmal keinen Kopf machen.  
      Danke für die Tipps.
      
  2. @@Multi:

    (Speichern z.B. in Notepad, weil das Teil keine BOM kann)

    Im Gegenteil: Das Teil kann nur BOM.

    Notepad speichert UTF-8-codierte Dateien immer _mit_ BOM. [QA-UTF8-BOM]

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    1. Mahlzeit,

      Notepad speichert UTF-8-codierte Dateien immer _mit_ BOM. [QA-UTF8-BOM]

      Komisch, bisher hat sich das Problem immer gelöst, wenn die Leute mit Notepad gespeichert haben.
      Ich habs aber selbst nie ausprobiert.