Ständig wollte Eclipse mit PDT unter Windows darauf bestehen, dass meine PHP-Quellcode-Dateien ein ISO-8859-1-Encoding haben. Stimmt aber nicht, sind alle UTF-8. Resultat: Massig kaputte Umlaute, zumindest unter Windows. Auch das Setzen von „UTF-8“ als default für meine Projekte half nix, ich hätte für jede einzelne Datei in Eclipse mit „Edit->Set Encoding“ das Charset ändern müssen, obwohl es unter Linux wieder anstandslos klappte.
Aber dort findet sich die Lösung (man muss unter Preferences->General-Charsets das Encoding für PHP-Dateien ändern).
Die Lösung ist etwas „strange“ oder „fishy“ – wie man bei uns sagt – weil:
1. Man stellt diesen Zeichensatz für alle Dateien im Projekt um (Projekteinstellungen) oder generell (wie oben beschrieben) – Ausnahmen kaum möglich
2. Die echte Kodierung wird nicht erkannt – auch wenn es Kinderleicht ist (wie z.B. kwrite oder kate unter linux/KDE beweisen). Warum Eclipse das noch nicht kann ist kaum zu erklären.
3. Nichts gegen Dich, aber &entity; war schon immer die sicherste Lösung 😉
BTW: Empfehle http://robert.kolatzek.org/wblog/360/php-und-die-umstellung-auf-utf-8
Jau, generell verwende ich auch &entities; im eigentlichen Code — in den Programm-Kommentaren bin ich jedoch fauler, sofern ich sie noch auf deutsch schreibe. Das scheint auch nur ein Problem unter Windows zu sein, insbesondere dann, wenn die Dateien auf einem Samba-Share liegen (welches aber korrekt auf UTF-8 eingestellt ist). Der oben beschriebene Weg ist meist die „quick & dirty“-Lösung.
Ich kann mir das auch nicht erklären, warum das unter Windows nicht so richtig klappen will. Vielleicht liegt es am „BOM“ – Byt Order Mark (big/littleEndian), welches am Anfang der Dateien steht und vom OS erkannt werden sollte… Vielleicht ist es wegen der Vorliebe von M$ für komplexe und überflüssige Sachen wie UTF-16 (wo doch UTF8 nur Kanbodschanisch und Klingonisch nicht abdecken kann).
Aber vielleicht kommt irgendwann der Tag, an dem wir im fortgeschrittenem Alter (kurz vor Demenz) im Wörterbüchern nach ISO-8859-1 suchen werden… Dann wird diese Frage eh obsolet! 😀
Vielen Dank für deinen Eintrag. Du hast mir die Problemlösung nach einer Stunde Sucherei gebracht.
Alles Gute wünscht
Luis