David Aurelio: Unicode durch PHP konvertieren

Beitrag lesen

Der von Dir erwähnte "SET NAMES"-Befehl regelt den Zeichensatz für die Übertragung zwischen Client und Server, nutzt Dir effektiv also nur etwas, wenn Deine Datenbank selber als 'UTF-8' speichert.

Jein. MySQL versucht Umwandlungen zwischen den Codierungen vorzunehmen. Dass dies nicht in jede Richtung verlustfrei möglich ist, liegt in der Natur der Sache.
Beispielsweise könnte das Charset einer Tabelle latin1 (=ISO-8859-1) sein und für Resultsets der aktuellen Verbindung UTF-8 eingestellt sein, dann bekommt man das Abfrageergebnis nach UTF-8 gewandelt ausgeliefert.

Ich gebe zu, dass ich an dieser Stelle geschlampt habe und mit der Fehlermeldung konkret nichts anzufangen wusste.

Aber um kurz bei SET NAMES zu bleiben:
ich hatte bei einem PHP-Projekt Probleme mit dem reinen "SET NAMES" Befehl, er funktionierte nicht wie gewünscht. Ich bin dazu übergegangen, die drei Befehle

  
SET character_set_client='utf8';  
SET character_set_connection='utf8'  
SET character_set_results='utf8'  

hintereinander auszuführen, auch wenn ich mich damit nur um die Fehlerbehebung drücke.
MySQL-Version (Client und Server) ist 4.1.12