MySQLi und UTF-8
Um auf MySQL Datenbanken zuzugreifen verwende ich gerne die MySQLi-Erweiterung von PHP. Vor ein paar Tagen musste ich dabei feststellen, dass es einen fiesen Fehler in der Methode “set_charset” gibt der zur Folge hat, dass die UTF-8 Unterstützung teilweise nicht funktioniert. Wenn man eine Verbindung zur Datenbank herstellt und dabei den Konstruktor der MySQLi-Klasse verwendet funktioniert das anschließende setzten des UTF-8 Zeichensatzes nicht. Wenn man die Verbindung allerdings mit der Methode “real_connect” öffnet funktioniert es wunderbar.
Ein Codebeispiel:
Funktioniert nicht:
1 2 3 | $this->mysqli = new mysqli("host", "user", "pass", "db"); $this->mysqli->set_charset('uft8'); echo $this->mysqli->character_set_name(); // Ausgabe: latin1 |
Funktioniert:
1 2 3 4 | $this->mysqli = mysqli_init(); $this->mysqli->real_connect("host", "user", "pass", "db"); $this->mysqli->set_charset("utf8"); echo $this->mysqli->character_set_name(); // Ausgabe: utf8 |
Der Fehler ist hier zwar gemeldet und als closed markiert, tritt bei mir jedoch immer noch auf.






Comments
Nachdem ich stundenlang das Problem in meinen Scripten gesucht habe, bin ich hier gelandet und:
YEPP, das wars.
Danke!
leprimo
August 13th, 2010