03.04.2007
Welcome to Babylon (MySQL, PHP und UTF-8)
Ian Christ / 17:29 /
Techniker / Link / Keine Kommentare / Keine Trackbacks
Nun, unter anderem läuft auf dem DB-Server eine kleine aber feine Klientendatenbank, und unsere russischen Kontakte waren nur noch als Fragezeichen erkennbar. Und wen ruft der Chef an? Klar, meine Wenigkeit! "Geh mal zum Olaf ins Zimmer, der hat das Zeugs alles dokumentiert. Sieh mal zu, wo man da was drehen muß!".
Olaf ist sehr ordentlich, und so habe ich Benutzername und Passwort für den Server und die Datenbank schnell gefunden. Tja, in phpMyAdmin sieht die Sache sauber aus, und ich kann dem Chef die Adresse der Frau Irina Ivanowa raussuchen. Aber er ist nicht zufrieden: "Ich will das hier auf meinem Bildschirm wiederhaben!". Gut, und so war heute meine Aufgabe, herauszufinden, wie man Kyrillische Buchstaben aus einer MySQL-Datenbank sauber via PHP in einem Webbrowser bekommt. Hier die Lösung:
a) Die MySQL-Datenbank muß komplett in UTF8-Unicode laufen. Das gilt für die Tabellen wie auch die Verbindung. Also alles auf Kollation = utf8_unicode_ci stellen. Das hat Olaf alles schon gemacht.
b) Das php-File mit der Abfrage der DB muß ganz am Anfang mit der Zeile
header("Content-Type: txt/html; charset=UTF-8"); präpariert sein - auch das hatte Olaf erledigt - in einem extra Include, dass den gemeinsamen Kopf aller php-Seiten bildet.c) In der HTML-Ausgabe, die an den Browser geht, ist der Metatag
<meta http-equiv="content-type"erforderlich. Hatte Olaf auch so gemacht.
content="text/html; charset=UTF-8">
Nach langem Suchen fand ich dann noch den Hinweis, dass man gleich nach dem
$dbcn = mysql_connect([server], [user], [password]);noch ein
mysql_query("SET NAMES 'utf8'");einschieben sollte - und dass fehlte bei Olafs Dateien noch.Ich hoffe, er verzeiht mir, dass ich es (nach einer Sicherung seiner Originaldateien) nachgetragen habe - jetzt geht auch die Adressabfrage wieder wie gewünscht.
Gefunden hab ich die Lösung hier unter phpforum.de.
Trackbacks
Bitte nutze die URL http://www.ianchrist.de/XE3system/tb.php?id=21 falls Du einen Trackback zu diesem Eintrag senden willst.

