Gründe und Lösungen für das fehlgeschlagene Einfügen von Emoji-Ausdrücken in MySQL

Gründe und Lösungen für das fehlgeschlagene Einfügen von Emoji-Ausdrücken in MySQL

Fehlerszenario

Beim Aufrufen von JDBC zum Einfügen von Emoji-Ausdrücken in die MySQL-Datenbank wird die Ausnahme java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\x9B' ausgelöst.

Ursache des Fehlers

Ein Zeichen in der UTF-8-Kodierung von MySQL ist höchstens 3 Bytes lang, ein Emoji-Ausdruck ist jedoch 4 Bytes lang. Daher unterstützt UTF-8 die Speicherung von Emoji-Ausdrücken nicht. Allerdings kann utf8mb4, eine Obermenge von utf8, maximal 4 Bytes pro Zeichen haben und unterstützt daher die Speicherung von Emoji-Ausdrücken.

Werfen wir einen Blick auf die ausführliche Einführung.

Lösung

1. Ändern Sie die Zeichensätze der Datenbank, Tabelle und Spalte

Ändern des Datenbank-Zeichensatzes

ALTER DATABASE Datenbankname CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;

Ändern des Tabellenzeichensatzes

ALTER TABLE Tabellenname IN ZEICHENSATZ KONVERTIEREN utf8mb4 COLLATE utf8mb4_general_ci;

Ändern des Spaltenzeichensatzes

ALTER TABLE Tabellenname CHANGE Feldname Feldname der ursprüngliche Datentyp des Feldes CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Die oben genannten drei Optionen können entsprechend Ihrer tatsächlichen Situation geändert werden.

2. MySQL-Konfigurationsvariablen anzeigen

VARIABLEN ANZEIGEN, WO Variablenname WIE 'Zeichensatz_%' ODER Variablenname WIE 'Sortier%'; 

Beachten Sie , ob der Wert der Variable character_set_server gleich utf8mb4 ist. Wenn nicht, fahren Sie mit Schritt 3 fort.

3. Ändern Sie die MySQL-Konfigurationsdatei

Hier ist MySQL unter CentOS installiert, der Name der Konfigurationsdatei lautet my.cnf und der Pfad basiert auf dem Verzeichnis, in dem Sie es installiert haben.

vim /etc/meine.cnf /etc/mysql/meine.cnf 

meine.cnf

Suchen Sie nach character_set_server, setzen Sie seinen Wert auf utf8mb4, speichern Sie und beenden Sie. Versuchen Sie erneut, ihn einzufügen, um zu sehen, ob ein Fehler vorliegt. Wenn ein Fehler auftritt, müssen Sie möglicherweise den MySQL-Dienst neu starten.

Dienst MySQL Neustart

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. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Speichern von Emoji-Ausdrücken in MySQL
  • Analyse der Lösung für MySQLs Unfähigkeit, Emoji-Ausdrücke zu speichern
  • So gehen Sie mit Fehlern im Emoji-Tabellenspeicher von MySQL um [Kodierung auf utf8mb4 ändern]
  • Analyse von Lösungen für das Problem, dass MySQL keine Emoji-Ausdrücke speichern kann
  • Lösung für das Problem, dass Emoji-Ausdrücke nicht in MySQL eingefügt werden können
  • So aktivieren Sie die Java-Backend-MySQL-Datenbank zur Unterstützung von Emoji-Ausdrücken
  • Tutorial zum Einrichten von MySQL zum Speichern von Emoji-Zeichen
  • So fügen Sie Emoji-Ausdrücke in MySQL ein

<<:  Lösung zum Vergessen des Passworts des Pagodenpanels in Linux 3.X/4.x/5.x

>>:  Vue verwendet Better-Scroll, um ein Beispiel für eine horizontale Scroll-Methode zu erreichen

Artikel empfehlen

Mini-Programm implementiert Listen-Countdown-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

Zwei Möglichkeiten zum Öffnen und Schließen des MySQL-Dienstes

Methode 1: Verwenden Sie den cmd-Befehl Öffnen Si...

Verwenden Sie Docker, um ein Git-Image mithilfe des Klon-Repositorys zu erstellen

Überblick Ich verwende Docker seit über einem Jah...

Drei gängige Methoden, um HTML-Seiten nach 3 Sekunden automatisch zu springen

In der Praxis stoßen wir häufig auf ein Problem: ...

XHTML-Tutorial für die ersten Schritte: XHTML-Webseiten-Bildanwendung

<br />Das sinnvolle Hinzufügen von Bildern k...

uni-app implementiert NFC-Lesefunktion

In diesem Artikel wird der spezifische Code der U...

Drei Beispiele für Node.js-Methoden zum Abrufen von Formulardaten

Vorwort Nodejs ist eine serverseitige Sprache. Wä...

Zusammenfassung der CSS-Methoden zum Löschen von Floats

Float wird häufig im Layout von Webseiten verwend...

Detaillierte Erläuterung der allgemeinen Schritte zur SQL-Anweisungsoptimierung

Vorwort In diesem Artikel erfahren Sie hauptsächl...

So wählen Sie das Format bei der Verwendung von Binlog in MySQL

Inhaltsverzeichnis 1. Drei Binlog-Modi 1.Anweisun...

Tutorial zu XHTML-Webseiten

<br />Dieser Artikel soll Anfängern hauptsäc...