dedlfix: MySQL DB in UTF 8 umwandeln. Worauf achten?

Beitrag lesen

echo $begrüßung;

Ich möchte meine MySQL Datenbank auf UTF 8 umstellen. Ich benutze phpmyadmin. Soweit ich das verstanden habe, wähle ich die Datenbank, gehe auf "Operations" und wähle dort unter "Collation" UTF 8. Stimmt das soweit?

Das stimmt, ist aber noch nicht alles. Weiter gehts mit den einzelnen Tabellen auf die gleiche Art wie bei der Datenbank. Und dann kommen noch die Text enthaltenden Felder der einzelnen Tabellen an die Reihe. Die erkennst du in der Struktur-Übersicht an einem Eintrag in der Spalte Kollation.

Jedenfalls bin ich nicht sicher welches utf8 ich wählen soll. Für mich klingen "utf8_bin", "utf8_general_ci" und "utf8_unicode_ci" alle recht plausibel, wobei ich zu letzterem tendieren würde. Wo ist bei den 3 der Unterschied. Wo ist überhaupt der Unterschied zwischen den ganzen "ut8_<sprache>_ci" Auswahlmöglichkeiten?

"bin" ist nicht das was du möchtest. <sprache> ist der Teil, der sich Kollation nennt und für die richtige Reihenfolge bei der Sortierung sorgt. Der Unterschied zwischen "unicode" und "general" ist im Handbuch-Kapitel Unicode Character Sets erklärt.

Nun gut, wenn ich das mal gemacht habe, codiert MySQL die bereits vorhandenen Datensätze auch auf UTF8 um?

Ja.

Oder ruiniere ich mir da die Datenbank?

Wenn die bisherige Kodierung der Daten zur Angabe in den Feldern gestimmt hat, dann nicht.

Beachte weiterhin, dass die Clients nach dem Verbindungsaufbau dem Server mitteilen sollten, welche Kodierung auf der Verbindung genommen werden soll. Dafür reicht im Allgemeinen ein "SET NAMES ...". Siehe Kapitel Connection Character Sets and Collations.

echo "$verabschiedung $name";