mysql, php und die Umlaute

Folgendes Problem: auf einem älteren Rechner ist SuSE Linux 9.1 installiert und die ganzen Tabellen mit „CHARSET=latin1“ angelegt worden (bei SuSE 9.1 default) – der Zugriff erfolgt aber meist über ein PHP Script von einem aktuellen Ubuntu System welches UTF-8 verwendet. Die Ausgabe des PHP Scripts enthält aber leider statt der Umlaute einfach immer nur ein schwarzes kästchen mit einem „?“ drinnen…

Mein erster Gedanke war einfach mal die MySQL Version am SuSE Rechner aktualisieren, also gleich mal Update auf 5.0.21 drauf gespielt! Hat aber leider nicht wirklich was bewirkt.

Den Zusammenhang mit dem CHARSET habe ich leider erst nach etwas Internet-Recherche herausgefunden – eine Möglichkeit wäre jetzt einen Dump der Tabelle anlegen und dann von latin1 nach utf-8 konvertieren, anschliessend müsste man das ganze einfach wieder in die Datenbank einspielen. Das erschien mir allerdings ein wenig zu umständlich!

Nach längerer Suche bin ich dann auf folgende recht einfach Lösung gestossen:

Einfach nach dem die Verbindung zur Datenbank hergestellt wurde folgenden Befehl absetzen:
mysql_query(„SET NAMES utf8“);

Und schon bringen alle weiteren Selects die Umlaute passend retour!

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.