Über die Fallstricke bei der Implementierung der angegebenen Kodierung in MySQL

Über die Fallstricke bei der Implementierung der angegebenen Kodierung in MySQL

Vorne geschrieben

Umgebung: MySQL 5.7+, MySQL-Datenbank-Zeichenkodierung ist UTF-8, Tabelle ist auch UTF-8

Szenario: WeChat autorisiert die Erfassung von Benutzerinformationen (einschließlich Spitznamen) und speichert diese in der Datenbank. Einige Benutzer haben Erfolg, einige scheitern jedoch.

Warum also ist es gescheitert?

Einfügen des Fehlerprotokolls

Falscher Zeichenfolgenwert: „\xF0\x9F\x98\x98\xF0\x9F...“ für Spalte „Spitzname“ in Zeile 1

Dies liegt daran, dass der WeChat-Spitzname des fehlgeschlagenen Benutzers Emoji-Symbole enthält.

Analyse:

MySQL unterstützt mehrere Zeichenkodierungssätze, wie UTF-8, GB2312, GBK usw.

Sie können es mit dem Befehl SHOW CHARSET anzeigen.

Normalerweise empfehlen wir die Verwendung von UTF-8 als Standardzeichenkodierung.

Aus der obigen Abbildung können wir erkennen, dass die MySQL-Datenbank über zwei Sätze von UTF-8-Kodierungsimplementierungen verfügt.

  • utf8: Die UTF8-Kodierung unterstützt nur bis zu drei Bytes. Bei der UTF-8-Kodierung nehmen chinesische Schriftzeichen 3 Bytes ein, während andere englische Schriftzeichen, Zahlen und Symbole jeweils 1 Byte einnehmen. Emoji-Symbole belegen jedoch 4 Bytes, und auch einige komplexere Texte und traditionelle chinesische Schriftzeichen beanspruchen 4 Bytes.
  • utf8mb4: Eine vollständige Implementierung der UTF-8-Kodierung. Es unterstützt bis zu 4 Bytes und kann daher zum Speichern von Emoji-Symbolen verwendet werden.

Überprüfen Sie die Informationen, offizielle Erklärung:

endlich

Tipps: Wenn Sie ein Feld haben, in dem Emoji-Symbole gespeichert werden müssen, denken Sie daran, die Kodierung als utf8mb4 anzugeben.

Dies ist das Ende dieses Artikels über eine kleine Lücke bei der Implementierung der MySQL-spezifizierten Kodierung. Weitere relevante Inhalte zur MySQL-spezifizierten Kodierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Kommentare zu gespeicherten MySQL-Prozeduren
  • Detaillierte Analyse der MySQL-Indexdatenstruktur
  • Wesentliche bedingte Abfrageanweisungen für MySQL-Datenbanken
  • Beispiel für die Konfiguration der Timeout-Einstellung für MySQL-Datenbanken
  • Detaillierte Erläuterung der Installations-, Konfigurations-, Start- und Herunterfahrmethoden des MySQL-Servers

<<:  Ein Beispiel für die Verwendung von Dapr zur Vereinfachung von Microservices von Grund auf

>>:  Detaillierte Erläuterung von Kompatibilitätsproblemen und Lösungen zum Festlegen der maximalen und minimalen Breite in der Tabelle

Artikel empfehlen

Remote-Entwicklung mit VSCode und SSH

0. Warum brauchen wir Remote-Entwicklung? Bei der...

CSS3 verwendet scale() und rotate() zum Zoomen und Drehen

1. scale()-Methode Zoom steht für „Verkleinern“ u...

Zusammenfassung der Dockerfile-Maven-Plugin-Nutzungsanleitung

Inhaltsverzeichnis POM-Konfiguration Setting.xml-...

Vue ElementUI implementiert einen asynchronen Ladebaum

In diesem Artikelbeispiel wird der spezifische Co...

Vue verwendet Element-UI, um die Menünavigation zu implementieren

In diesem Artikel wird der spezifische Code von V...

Docker-Lernen: Die spezifische Verwendung von Container-Containern

Container sind ein weiteres Kernkonzept von Docke...

Konfigurieren Sie ein Implementierungsbeispiel für den Mysql-Master-Slave-Dienst

Konfigurieren Sie ein Implementierungsbeispiel fü...

So erstellen Sie eine Deep-Learning-Umgebung mit Python in einem Docker-Container

Überprüfen Sie die Virtualisierung im Task-Manage...

Tutorial zum Erstellen eines CA-Zertifikats unter Linux Centos8

Installieren der erforderlichen Dateien Yum insta...