Aktualisierung:
Kurze Antwort - Sie sollten fast immer utf8mb4
verwenden Zeichensatz und utf8mb4_unicode_ci
Sortierung.
So ändern Sie die Datenbank:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Siehe:
-
Aarons Kommentar zu dieser Antwort How to dafür sorgen, dass MySQL UTF-8 richtig verarbeitet
-
Was ist der Unterschied zwischen utf8_general_ci und utf8_unicode_ci
-
Konvertierungsanleitung:https://dev.mysql. com/doc/refman/5.5/en/charset-unicode-conversion.html
Ursprüngliche Antwort:
MySQL 4.1 und höher hat einen Standardzeichensatz von UTF-8. Sie können dies in Ihrer my.cnf
überprüfen Datei, denken Sie daran, beide einzustellen Client und Server (default-character-set
und character-set-server
).
Wenn Sie vorhandene Daten haben, die Sie in UTF-8 konvertieren möchten, sichern Sie Ihre Datenbank und importieren Sie sie wieder als UTF-8, wobei Sie Folgendes sicherstellen:
- benutze
SET NAMES utf8
bevor Sie in die Datenbank abfragen/einfügen - benutze
DEFAULT CHARSET=utf8
beim Erstellen neuer Tabellen - Zu diesem Zeitpunkt sollten Ihr MySQL-Client und -Server in UTF-8 sein (siehe
my.cnf
). Denken Sie daran, dass alle von Ihnen verwendeten Sprachen (z. B. PHP) ebenfalls UTF-8 sein müssen. Einige PHP-Versionen verwenden ihre eigene MySQL-Client-Bibliothek, die UTF-8 möglicherweise nicht unterstützt.
Wenn Sie vorhandene Daten migrieren möchten, denken Sie daran, zuerst ein Backup zu erstellen! Wenn die Dinge nicht wie geplant laufen, kann es zu vielen seltsamen Datenverschneidungen kommen!
Einige Ressourcen:
- vollständige UTF-8-Migration (cdbaby.com)
- Artikel über UTF-8-Bereitschaft von PHP-Funktionen (Beachten Sie, dass einige dieser Informationen veraltet sind)