Zeichensatz-Chaos
Verfasst: 18.09.2006 23:29
Hallo zusammen,
bei einem Projekt stehe ich gerade vor einem kleinen Zeichensalat - und den versuche ich gerade etwas zu entwirren. Eigentlich denkt man: ganz einfach, wenn man überall sauber die richtige Kodierung angibt. Und da sollte eigentlich ISO 8859-15 die beste Wahl sein. Doch ganz so einfach machen es einen die beteiligten Akteure nicht:
Doch wie komme ich nun am besten aus dem Schlamassel?
Viele Grüße,
Philipp
bei einem Projekt stehe ich gerade vor einem kleinen Zeichensalat - und den versuche ich gerade etwas zu entwirren. Eigentlich denkt man: ganz einfach, wenn man überall sauber die richtige Kodierung angibt. Und da sollte eigentlich ISO 8859-15 die beste Wahl sein. Doch ganz so einfach machen es einen die beteiligten Akteure nicht:
- PHP: dem ist das relativ egal - auf jeden Fall sind alle Dateien richtig nach ISO 8859-15 kodiert und auch entsprechend im Seitenkopf angegeben (einmal per Header vorab und einmal als http-equiv)
- MySQL: kennt ISO 8859-15 nicht sondern nur latin1, was aber nicht ISO 8859-1 entspricht sondern Windows-1252.
- Mehrere Web-Browser: die scheinen wohl ihre Daten recht unvoreingenommen als Windows-1252 zu senden. Der Firefox lässt sich mit accept-charset dazu bringen, ISO 8859-15 zu verwenden - aber nicht der MSIE 6
- Mehrere E-Mail-Clients: die scheinen wohl keine großen Probleme zu haben - sofern sie die richtigen Daten bekommen.
Doch wie komme ich nun am besten aus dem Schlamassel?
- ISO 8859-1 scheidet erst mal aus, da hier das Eurozeichen nicht existiert. Man könnte natürlich hoffen, dass das überall wie unter Windows-1252 implementiert ist - aber schön wäre das nicht.
- ISO 8859-15 scheint wie oben beschrieben nicht sauber zu gehen.
- Windows-1252 scheint mir gerade der kleinste gemeinsamme Nenner zu sein. Ich weiß aber nicht, ob ich dann mit ein paar Unix-Systemen Probleme bekomme.
- Unicode (UTF-8) war für mich erst mal die erste Lösungsidee - weil damit könnte man es sauber implementieren. Doch gibt es mehrere Beiträge, die einem wegen mangelnder PHP-Unterstützung davor abraten: man müsste zum einen einige Funktionen mit der mb_...-Variante ersetzen, zum anderen macht mir die Perl-Regex noch etwas Sorgen.
Viele Grüße,
Philipp