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

HTML-Hyperlinks im Detail erklärt

Hyperlink Hyperlinks sind die am häufigsten verwen...

Versteckter Overhead von Unix/Linux-Forks

Inhaltsverzeichnis 1. Der Ursprung der Gabel 2. F...

Erklärung des Konzepts und der Verwendung von Like in MySQL

Like bedeutet auf Chinesisch „wie“, aber wenn es ...

So aktualisieren Sie alle Python-Bibliotheken in Ubuntu 18.04 auf einmal

Was ist Pip pip ist ein Python-Paketverwaltungsto...

Allgemeine Datentypen in MySQL 5.7

——Anmerkungen aus „MySQL in einfachen Worten (zwe...

Zen-Codierung für Editplus – Beispielcodebeschreibung

Er gibt beispielsweise ein: XML/HTML Code div#Seit...

Einige Details zu MySQL-Indizes

Vor ein paar Tagen stellte mir ein Kollege eine F...

So installieren und konfigurieren Sie einen FTP-Server in CentOS8.0

Nach der Veröffentlichung von CentOS8.0-1905 habe...

Ein mobiler adaptiver Webseiteneffekt löst das Problem der kleinen Anzeigeseite

Für die Arbeit muss ich einen adaptiven Webseitene...