Jul 29

Mit der Version 4.1 fanden Zeichensätze Einzug in MySQL. Man möchte meinen mit der gewünschten Einstellung von Datenbank- bzw. Feld-Kollationen seien alle Probleme beseitigt, dem ist aber nicht immer so. Zeichensätze führen häufig zu Problemen, da mehrere Komponenten beteiligt sind und somit an vielen Stellen die korrekte Angabe nötig ist, z.B. auch bei der Auslieferung des HTMLs an den Browser. Die häufigsten Problem treten aber in Verbindung mit MySQL auf.

Vor der Einführung von Zeichensätzen in MySQL wurden alle Daten als ISO-8859-1 gespeichert. Der MySQL-Client führt deshalb in der Standardkonfigurationen Anfragen an den Server weiterhin mit diesem Zeichensatz durch, um die Kompatiblität aufrecht zu erhalten. Ist nun die Kollation seitens des MySQL-Servers auf UTF-8 eingestellt, führt es unweigerlich zu Problemen, wenn der MySQL-Client mit diesem in ISO-8859-1 kommuniziert. Deshalb ist es notwendig, nach der Initalisierung der Verbindung den korrekten Zeichensatz für die Verbindung festzulegen – die geschieht mit:

SET NAMES 'UTF-8'

Diese Abfrage überschreibt für die aktuelle Verbindung die Standardeinstellung für character_set_client, character_set_connection und character_set_results. Alternativ wäre es natürlich auch möglich die Konfiguration entsprechend anzupassen und standardmäßig auf UTF-8 einzustellen. Aus Kompatibilitätsgründen sollte man darauf verzichten, solange nicht wirklich alle darauf zugreifenden Komponenten mit dieser Einstellung umzugehen wissen. Denn eine Kommunikation mittels UTF-8 mit einer ISO-8859-1-Datenbank führt unweigerlich zum selben Problem.



Verwandte Beiträge

Kommentar schreiben