Datum: 05.11.2008
, Kategorie:
Software
Ein Thema, dass bereits jetzt schon einen Teil der Support-Anfragen ausmacht und sicherlich in Zukunft eine Rolle spielen wird, ist die UTF-8-Kodierung von Text in PHP-Scripten. Probleme treten immer dann auf, wenn zum Beispiel die UTF-8-kodierten Sprachdateien von Scripten, vom Anwender geöffnet und bearbeitet werden. Nach dem Speichern der Datei befindet sich plötzlich folgendes Zeichen am Anfang der Datei:

Das Teil nennt sich Byte-Order-Mark (BOM) und markiert den Text als UTF-8-kodiert. Das Zeichen wird von den Editoren meist automatisch eingefügt. Der Nachteil ist, dass das BOM an den Browser ausgegeben wird (und störend wirkt) und unter Umständen mit Funktionen wie session_start() oder header() in Konflikt gerät.
Möglichkeit 1: Idealerweise bietet der Editor die Möglichkeit, UTF-8-Kodierung ohne BOM einzustellen. Notepad++ zum Beispiel kann das. Einfach eine der Optionen mit ... without BOM auswählen.
Möglichkeit 2: Die UTF-8-kodierten Dateien mit dem normalen Editor bearbeiten und später mit einem einfachen Editor öffnen und das BOM manuell entfernen.
Möglichkeit 3: Ganz normal mit dem bisherigen Zeichensatz (z.B. iso-8859-1) arbeiten und dann die Datei mit Hilfe der PHP-Funktion utf8_encode() umwandeln.