Zeichensatz einer MySQL-Verbindung einstellen

Wird per PHP eine MySQL-Verbindung aufgebaut, dann kommt es häufig vor, dass Sonderzeichen in Abfrageergebnissen nicht richtig dargestellt werden. Bei mir passiert dies oft, wenn ich Datenbanken abfrage, die die Kollation UTF-8 haben. Das geschieht selbst, wenn die abfragende Seite an sich ebenfalls auf den Zeichensatz eingestellt ist. Gleichwohl lässt sich feststellen, dass die Ergebnis-Rückgaben in einem ISO8859-1-Zeichensatz erfolgen

Mit einer simplen Anweisungen nach dem Verbdindungsaufbau kann der Zeichensatz der Verbindung aufgebaut werden. Die Anweisung in MySQL lautet:

set names utf8

Eingebettet in PHP-Code, der zuvor eine Verbindung aufbaut, sieht das Ganze dann so aus:

if (!$db = @mysql_connect($host,$user,$password)) die("Keine Datenbankverbindung");
if (!$ergebnis = @mysql_query("set names utf8",$db)) return 1;
Blog-Kategorien: