Hauptmenü

Untermenü

Zeichenkodierung - MySQL Teil 1

1. Die Abschnitte

2. Ein Hinweis

Für die Erstellung unserer Datenbank greife ich wie angekündigt, bei diesem Beispiel auf phpMyAdmin zurück, da der im Gegensatz zu anderen MySQL-Frontends wunderbar mit Unicode klarkommt. Die Arbeit damit setze ich als bekannt voraus. Ansonsten müsst ihr ein wenig damit herumspielen.

3. Top-Down

Dieses Prinzip greift, sobald man es mit Tabellenfeldern vom Typ Text zu tun hat. Also zum Beispiel VARCHAR oder TEXT. Dabei gibt es eine einfache Regel. Denn die so genannte Kollation (der Zeichensatz) wird von oben nach unten vererbt, wenn man die bei Textfeldern nicht explizit angibt, welcher Zeichensatz genommen werden soll. Sollte man allerdings jedwede Angabe vergessen, so wird der Standardzeichensatz latin1_swedish_ci genommen. Die spinnen, die Schweden.

Ein paar Beispiele

4. utf8_irgendwas

MySQL stellt uns bei Unicode (UTF-8) eine ziemlich lange Liste von Möglichkeiten zur Verfügung. Aber welche sollte man nun nehmen. Nun, diese ganzen sprachspezifischen Zeichensätze à la utf8_slovak_ci sollte man normalerweise meiden wie der Teufel das Weihwasser. Bleiben also noch drei, mit denen man problemlos arbeiten kann.

5. Ein feiner Unterschied

Leider beschränken sich meine Fremdsprachenkenntnisse auf Englisch, ein paar Brocken Französisch sowie einige Sätze auf Latein, die ich noch aus den Asterix-Heften in Erinnerung habe. Darum beziehen sich die folgenden Erläuterungen ausschließlich auf Deutsch mit seinen Umlauten. Also, es gibt einen kleinen aber gravierenden Unterschied zwischen utf8_bin auf der einen Seite und utf8_general_ci/utf8_unicode_ci. Und zwar bei einer Sortierung mittels ORDER BY. Denn wenn ein Feld mit einem Umlaut beginnt, so sieht das Ergebnis zum Beispiel so aus.

utf8_bin

utf8_general_ci/utf8_unicode_ci

Darum sollte man auch auf utf8_bin verzichten, da die Sortierung zumindest im Deutschen ziemlich ungewohnt ist. Und wie man nun praktisch mit utf8_general_ci beziehungsweise utf8_unicode_ci arbeitet, zeige ich euch jetzt.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt