Ü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

5 Möglichkeiten zum Senden von E-Mails in der Linux-Befehlszeile (empfohlen)

Wenn Sie eine E-Mail in einem Shell-Skript erstel...

So starten Sie mehrere MySQL-Instanzen in CentOS 7.0 (mysql-5.7.21)

Konfigurationsanweisungen Linux-System: CentOS-7....

Ursachen und Lösungen für domänenübergreifende Probleme bei Ajax-Anfragen

Inhaltsverzeichnis 1. Wie entsteht Cross-Domain? ...

Die HTML-Tag-ID kann eine Variable sein

<table id=" <%=var1%>">, der...

W3C Tutorial (5): W3C XML Aktivitäten

XML dient der Beschreibung, Speicherung, Übertrag...

Linux-Datei-/Verzeichnisberechtigungen und Eigentümerverwaltung

1. Übersicht über Dateiberechtigungen und Eigentu...

Das WeChat-Applet ermöglicht horizontales und vertikales Scrollen

In diesem Artikelbeispiel wird der spezifische Co...

So fügen Sie schnell 10 Millionen Datensätze in MySQL ein

Ich habe gehört, dass es eine Interviewfrage gibt...

Webdesign: Skriptmaterialien rekonstruieren das Benutzererlebnis

<br />Originaltext: http://blog.rexsong.com/...

Tutorial zur HTML-Tabellenauszeichnung (10): Zell-Padding-Attribut CELLPADDING

Unter Zellenabstand versteht man den Abstand zwis...