So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4

Wenn für MySQL 5.5 der Zeichensatz nicht festgelegt ist, ist der Standardzeichensatz von MySQL der lateinische Zeichensatz latin1.

Mit der Weiterentwicklung verschiedener Unternehmen tauchen jedoch neben den Zeichen der Landessprachen verschiedener Länder häufig einige Emoticons in Anwendungen auf. Vor MySQL 5.5 unterstützte die UTF-8-Kodierung nur 1-3 Bytes und den Unicode-Kodierungsbereich des BMP-Teils. Ab MySQL 5.5 kann die 4-Byte-UTF-Kodierung utf8mb4 unterstützt werden. Ein Zeichen kann mehr Zeichensätze und mehr Emoticons unterstützen.

utf8mb4 ist mit utf8 kompatibel und kann mehr Zeichen darstellen als utf8. Es ist eine Obermenge des utf8-Zeichensatzes. Daher setzen einige neue Unternehmen, wie z. B. ISO, den Zeichensatz der MySQL-Datenbank auf utf8mb4.

Als ich heute eine Bewerbungsanforderung bearbeitete, stieß ich auf folgendes Problem:

Die beste Möglichkeit zur Anpassung besteht natürlich darin, den Zeichensatz der MySQL-Datenbank auf der Clientseite auf utf8mb4 zu ändern. Dies führt jedoch zu zahlreichen Änderungen. Wenn ein Teil des Clients auf utf8 und ein Teil auf utf8mb4 geändert wird, kann es leicht zu Verwirrung kommen.

Nach mehreren Tests wurde die Zeichensatzkonfiguration in my.cnf der MySQL-Datenbank auf folgende Konfiguration geändert:

[Kunde] 
Standardzeichensatz = utf8mb4 
 
[mysqld] 
Zeichensatzserver = utf8mb4 
Sortierserver = utf8mb4_unicode_ci 
init_connect = "Namen festlegen utf8mb4" 
Zeichensatz-Client-Handshake überspringen = wahr 
 
[mysql] 
Standardzeichensatz = utf8mb4

Empfehlungen zur Verwendung von MySQL-Zeichensätzen

• Versuchen Sie beim Erstellen einer Datenbank/Tabelle und beim Durchführen von Datenbankoperationen, den zu verwendenden Zeichensatz explizit anzugeben, anstatt sich auf die MySQL-Standardeinstellungen zu verlassen. Andernfalls kann es beim Upgrade von MySQL zu großen Problemen kommen.

• Obwohl die Zeichenverzerrungen in den meisten Fällen behoben werden können, wenn sowohl die Datenbank als auch der Verbindungszeichensatz Latin1 verwenden, besteht der Nachteil darin, dass SQL-Operationen nicht in Zeicheneinheiten ausgeführt werden können. Im Allgemeinen ist es besser, sowohl den Datenbank- als auch den Verbindungszeichensatz auf UTF8 einzustellen.

• Wenn Sie die mysql C API verwenden, setzen Sie das Attribut MYSQL_SET_CHARSET_NAME mit mysql_options sofort nach dem Initialisieren des Datenbank-Handles auf utf8. Auf diese Weise müssen Sie den Verbindungszeichensatz nicht explizit mit der SET NAMES-Anweisung angeben, und wenn Sie mysql_ping verwenden, um eine lange unterbrochene Verbindung wiederherzustellen, wird der Verbindungszeichensatz ebenfalls auf utf8 zurückgesetzt.

• Bei MySQL PHP API ist die Gesamtlaufzeit von PHP-Programmen auf Seitenebene im Allgemeinen kurz. Nach dem Herstellen einer Verbindung mit der Datenbank können Sie den Verbindungszeichensatz einmal explizit mit der Anweisung SET NAMES festlegen. Achten Sie bei langen Verbindungen jedoch darauf, die Verbindung offen zu halten, und verwenden Sie die Anweisung SET NAMES, um den Verbindungszeichensatz nach dem Trennen und erneuten Herstellen explizit zurückzusetzen.

Umfassendes Verständnis des Unterschieds zwischen utf8 und utf8mb4 in MySQL: https://www.jb51.net/article/90037.htm

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Schritte zum Ändern des MySQL-Zeichensatzes auf UTF8 unter Linux
  • Beispiel für utf8mb4-Sortierung in MySQL
  • MySQL-Kodierung utf8 und utf8mb4 utf8mb4_unicode_ci und utf8mb4_general_ci
  • So ändern Sie die Kodierung der MySQL-Datenbank in utf8mb4
  • mysql charset=utf8 verstehen Sie wirklich, was es bedeutet
  • mysql verstümmelte Zeichen Latin1-Zeichen in UTF8-Details konvertiert

<<:  Detaillierte Erläuterung der praktischen Anwendung der Centos7 ESXi6.7-Vorlage

>>:  Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion

Artikel empfehlen

Fügen Sie dem Debian-Docker-Container geplante Crontab-Aufgaben hinzu

Mittlerweile basieren die meisten Docker-Images a...

Auszeichnungssprache - Bildersetzung

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

MySQL fügt automatisch Millionen simulierter Datenoperationscodes ein

Ich verwende Navicat als Datenbanktool. Andere si...

Die Hook-Funktion von Vue-Router implementiert Routing Guard

Inhaltsverzeichnis Überblick Globale Hook-Funktio...

Natives JavaScript, um den Karusselleffekt zu erzielen

In diesem Artikel wird der spezifische Code für J...

So installieren Sie das Modul „lua-nginx-module“ in Nginx

ngx_lua_module ist ein Nginx-HTTP-Modul, das den ...

Detaillierte Erklärung des Docker Compose-Orchestrierungstools

Docker Compose Docker Compose ist ein Tool zum De...

Einige Hinweise zu MySQL-Routineberechtigungen

1. Wenn der Benutzer über die Berechtigung zum Er...

So fügen Sie einem Feld in MySQL eine Standardzeit hinzu

Unterschiede und Verwendungen von Datumstypen MyS...

Detaillierte Schritte zum Bereitstellen eines Tomcat-Servers basierend auf IDEA

Inhaltsverzeichnis Einführung Schritt 1 Schritt 2...