Zeichenproblem: Win-MAC-Linux

Moin,

was passiert eigentlich mit den ganzen Sonderzeichen, wenn man mit HTML-Formularen, PHP und mySQL zwischen MAC, Windows und Linux rumhantiert?

Konkretes Beispiel: Ich habe ein HTML-Formular mit einer und einem Absende-Button. Beim Absenden wird ein PHP-Skript aufgerufen, das auf einem Linux-Rechner liegt (PHP/4.3.3, Apache/2.0.48, mySQL/4.0.15).

Ich gehe jetzt mal davon aus, dass das PHP-Skript die „originalen“ ASCII-Zeichen sieht, egal, was für ein Zeichen dahinter steckt, oder? Wenn also ein Windows-User z.B. ein ä eingibt, sieht PHP das Zeichen 228. Gibt PHP das nun auf einem Mac-Browser aus, erscheint dort wahrscheinlich ein Promille-Zeichen, oder? Das ließe sich natürlich für alle möglichen Zeichen durchspielen.

Wenn ich nun ein PHP-Skript schreiben möchte, das alle Eingaben robust verarbeitet, egal, von welchem System sie kommen, und ebenso robust wieder ausgibt, egal wohin sie gehen, habe ich wohl ganz schön die A-Karte gezogen, wie ich das momentan sehe. Zu allem Überfluss steckt manchmal noch mySQL mit dazwischen, aber es geht sogar schon mit der simplen Eingabe-Überprüfung per JavaScript los: Wie soll ich z.B. einem Mac-Browser klarmachen, dass das ß-Zeichen erlaubt ist, aber das §-Zeichen nicht, wenn ich einem Windows-Browser genau das Gegenteil beibringen will? Das Windows-§ ist ja beim Mac das ß.

Läuft es etwa wirklich darauf hinaus, dass ich gucken muss, was für ein System mit dem PHP-Skript spricht, um daraufhin irgendwelche Konvertierungen vorzunehmen, falls notwendig? Wenn ja, womit veranstaltet mah sowas? Mit iconv , falls das überhaupt installiert ist? Und wenn ja, mit welchen Parametern? Das PHP-Handbuch ist da leider nicht sehr auskunftsfreudig.

Ist vielleicht UTF8 das Zauberwort? Wenn ja, wie geht man damit um? Und bläst das einen Text nicht ziemlich auf beim Abspeichern in einer Datenbank?

Danke für Hinweise,
Kristian

Wahrscheinlich gelöst …
Hallo nochmal,

also ich habe nochmal rumprobiert und recherchiert und bin nun fast sicher, dass es doch relativ einfach funktionieren müsste (einen fähigen Browser vorausgesetzt):

Man muss einfach nur überall das charset richtig setzen, und zwar im HTML-Header und im Formular-Tag und ggf. im Skript-Tag (zum Laden eines externen JS-Files).

Das Problem war wohl, dass ich zunächst mit unbekannten Kodierungen probiert hatte, was natürlich zu keinem Erfolg führte, dafür aber zum obigen Posting :wink: Nun habe ich es mal mit IBM850 probiert, was ungefähr auf´s Gleiche rauskommen sollte, als würde ein MACianer mit ISO-8859-1 konfrontiert, und es klappte sowohl mit dem IE als auch mit Firefox.

Nun bin ich mal zuversichtlich und hoffe, dass mir der „richtige“ Webserver keinen Strich durch die Rechnung macht (bisher lief es nur auf meinem lokalen) und dass die Mac-Browser das auch auf die Reihe kriegen, vielleicht sogar der katastrophale Safari :wink:

Kristian