Lisa: Mysql Phpmyadmin latin-swedish oder utf8-general_ci

Hallo,

ich möchte mich nach längerer SQL-Abstinenz, mal wieder dem Ganzen widmen. Vieles habe ich davon vergessen, einiges ist neu dazu gekommen, daher bitte nicht wundern, wenn ich auch mit scheinbar trivialen Fragen hier in Zukunft nerven sollte.

Im Lauf der Jahre gibt es immer mehr Optionen im Phpmyadmin, das ist zwar schön aber gleichzeitig auch irritierend. Was mich am meisten wundert ist, dass per Default immer diese, ohnehin schon verwirrenden, Zeichenkodierungen auf latin-swedish eingestellt sind, anstatt auf utf8-general_ci. Warum überhaupt so viele Codierungen, und welche sollte man wirklich als Default nehmen?

lg.

akzeptierte Antworten

  1. Tach!

    Was mich am meisten wundert ist, dass per Default immer diese, ohnehin schon verwirrenden, Zeichenkodierungen auf latin-swedish eingestellt sind, anstatt auf utf8-general_ci.

    Historisch bedingt, das ist der Default-Wert von MySQL. (MySQL war eine schwedische Firma.) Die Zeichenkodierungsgeschichte gibts allerdings schon seit Version 4.x in MySQL.

    Warum überhaupt so viele Codierungen, und welche sollte man wirklich als Default nehmen?

    Es haben sich im Laufe der Zeit (außerhalb MySQLs) eine Menge Kodierungen entwickelt. Dazu kommt noch, dass Sprachen unterschiedliche Auffassungen haben, wie Umlaute und andere von den lateinischen Basisbuchstaben abweichende Zeichen zu behandeln sind, beispielsweise bei Sortierung und Vergleichen.

    Unter der Voraussetzung, dass Deutsch und Englisch die für dich relevanten Sprachen sind: utf8_general_ci oder utf8_unicode_ci oder utf8_german2_ci. Oder utf8mb4_general_ci oder utf8mb4_unicode_ci oder utf8mb4_german2_ci, wenn es der volle Unicode-Umfang sein soll.

    Ich nehme meist general, denn ob es nach DIN 5007 Variante 1 (Lexikon) oder 2 (Telefonbuch) sortiert wird, ist meist unerheblich.

    Der erste Teil einer solchen Angabe ist die Kodierung, die anderen beiden sind Angaben zur Collation. Die Collation ist für Vergleichs- und Sortierregeln zuständig. Der wichtigste Teil ist die Kodierungsangabe, der legt fest, wie die Daten physisch abgelegt werden und bestimmt, welche Zeichen verwendet werden können.

    dedlfix.

    1. Historisch bedingt, das ist der Default-Wert von MySQL. (MySQL war eine schwedische Firma.) Die Zeichenkodierungsgeschichte gibts allerdings schon seit Version 4.x in MySQL.

      Danke für die umfangreiche und schlüssige Antwort. Ob das jetzt von den verantwortlichen Mysql-Entwicklern sinnvoll ist so einen unsinnigen Defaultwert zu setzen und User damit zu verunsichern, nur aus Nostalgiegründen, bleibt mir ein Rätsel.

      lg.

      1. Hallo

        Historisch bedingt, das ist der Default-Wert von MySQL. (MySQL war eine schwedische Firma.) Die Zeichenkodierungsgeschichte gibts allerdings schon seit Version 4.x in MySQL.

        Danke für die umfangreiche und schlüssige Antwort. Ob das jetzt von den verantwortlichen Mysql-Entwicklern sinnvoll ist so einen unsinnigen Defaultwert zu setzen und User damit zu verunsichern, nur aus Nostalgiegründen, bleibt mir ein Rätsel.

        Bei nicht vor Urzeiten installierten MySQL-Servern begegnet mir heutzutage üblicherweise utf8 oder utf8mb4 als Defaultwert für Server, Datenbanken und Tabellen (meist utf8mb4). Zudem ist MySQL seit langem nicht mehr ein schwedisches Produkt. Mittlerweile gehört MySQL zu Oracle.

        Tschö, Auge

        --
        Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
        Hohle Köpfe von Terry Pratchett