Ü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

So erzwingen Sie die vertikale Anzeige auf mobilen Seiten

Ich habe kürzlich bei der Arbeit eine mobile Seit...

Implementierung von webpack-dev-server zum Erstellen eines lokalen Servers

Inhaltsverzeichnis Vorwort Webpack-Deb-Server Sta...

Implementierung der Nginx-Domänennamenweiterleitung für den HTTPS-Zugriff

Ein Wort vorab: Plötzlich erhielt ich die Aufgabe...

Gemeinsame Nutzung verschiedener Methoden zum Deaktivieren des Seitencaches

Heute bin ich beim Entwickeln auf eine Methode ge...

Grundlegendes Installationstutorial zum Dekomprimieren von MySQL-Paketen

Da ich auf einen neuen Computer gewechselt bin, m...

Einige Frontend-Grundlagen (HTML, CSS) aus der Praxis

1. Die Div-CSS-Maushandform ist Cursor:Zeiger; 2. ...

Detaillierte Erklärung der MySQL-Halbsynchronisierung

Inhaltsverzeichnis Vorwort MySQL Master-Slave-Rep...

Mehrere gängige Methoden zum Senden von Anfragen mit Axios in React

Inhaltsverzeichnis Installieren und Einführen von...

Beispiel für das Einfügen eines HTML-Bilds (html add image)

Zum Einfügen von Bildern in HTML sind HTML-Tags f...