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

Tipps zur Optimierung von CSS-Schattenanimationen

Diese Technik stammt aus diesem Artikel - So anim...

Beispiele für die Verwendung des Linux-Touch-Befehls

Detaillierte Erklärung des Linux-Touch-Befehls: 1...

Sieben Möglichkeiten zur Implementierung der Array-Deduplizierung in JS

Inhaltsverzeichnis 1. Verwenden von Set()+Array.f...

Detaillierte grafische Erklärung der MySQL-Abfragesteuerungsanweisungen

MySQL-Abfrage-Steueranweisungen Felddeduplizierun...

Warum wird deine Like-Aussage nicht indexiert?

Vorwort Dieser Artikel zielt darauf ab, die langw...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.19 (Win10)

Detailliertes Tutorial zum Herunterladen und Inst...

Detaillierte Codebeispiele zu sieben Methoden zur vertikalen Zentrierung mit CSS

Wenn wir ein Layout bearbeiten, verwenden wir nor...

Vue implementiert einen einfachen Rechner

In diesem Artikelbeispiel wird der spezifische Co...

So setzen Sie Ihr Linux-Passwort zurück, wenn Sie es verloren haben

1. Das Startmenü besteht darin, den Cursor in die...

Implementierungscode für unendliches Scrollen mit n Containerelementen

Szenario So rendern Sie Listen mit bis zu 10.000 ...

JavaScript zum Erzielen eines Tab-Umschalteffekts

In diesem Artikel wird der spezifische JavaScript...

Eine kurze Analyse der expliziten Typkonvertierung von MySQL

CAST-Funktion Im vorherigen Artikel haben wir die...

Einführung in die Verwendung von CSS3-Filterattributen

1. Einleitung Beim Schreiben von Animationseffekt...

Wie viele gängige Schleifen zur Array-Traversierung in JS kennen Sie?

Vorwort Als grundlegende Datenstruktur spielen Ar...