So fügen Sie Emoji-Ausdrücke in MySQL ein

So fügen Sie Emoji-Ausdrücke in MySQL ein

Vorwort

Als ich heute ein Feedback-Formular für ein Open-Source-Projekt entwarf, stieß ich auf das Problem, dass ich keine Emoji-Ausdrücke einfügen konnte. Ich suchte online nach vielen Lösungen, aber die Antworten waren unterschiedlich und ich fand keine, die funktionierte.

Nach einigen Schwierigkeiten habe ich den Emoji-Ausdruck schließlich erfolgreich eingefügt. In diesem Artikel werde ich Ihnen meinen Implementierungsprozess erläutern. Interessierte Entwickler sind herzlich eingeladen, diesen Artikel zu lesen.

Vorne geschrieben

Mein Server ist ein Mac-System und MySQL wird mit brew installiert. Der Speicherort der Konfigurationsdatei kann unter Windows/Linux je nach tatsächlicher Situation leicht abweichen.

Lassen Sie mich Ihnen zunächst die Fehlermeldung zeigen:

chat_system> UPDATE chat_system.feedback t SET t.comments = 'Feedback-Informationstest 😂' WHERE t.id = 1
[2020-12-01 21:36:08] [HY000][1366] Falscher Stringwert: '\xF0\x9F\x98\x82' für Spalte 'Kommentare' in Zeile 1
[2020-12-01 21:36:08] [HY000][1366] Falscher Stringwert: '\xF0\x9F\x98\x82' für Spalte 'Kommentare' in Zeile 1

Umsetzungsideen

Da die Datenbank standardmäßig das UTF-8-Kodierungsformat verwendet, belegen normale Zeichenfolgen 3 Bytes und Emoticons 4 Bytes. Derzeit reicht UTF-8 nicht aus. Der Zeichensatz utf8mb4 kann dieses Problem lösen.

Hinweis: Der Zeichensatz utf8mb4 erfordert eine Datenbankversion höher als 5.5.3.

Wir müssen also Folgendes tun:

  • Ändern Sie die MySQL-Konfigurationsdatei und legen Sie ihr Kodierungsformat fest
  • Ändern der Datenbank-Zeichensatzkodierung
  • Ändern der Zeichensatzkodierung der Datenbanktabelle

Implementierungsprozess

Die Standardreihenfolge, in der MySQL die Konfiguration liest, ist: /etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf. Wenn diese Konfigurationsdateien im entsprechenden Verzeichnis nicht vorhanden sind, müssen Sie eine neue erstellen.

  • Ändern Sie die Datenbankkonfigurationsdatei my.cnf. Mein Dateispeicherort ist: /usr/local/etc. Fügen Sie den folgenden Code hinzu
[mysqld]
Zeichensatzserver = utf8mb4
Sortierserver = utf8mb4_unicode_ci
init_connect = "Namen festlegen utf8mb4"
Zeichensatz-Client-Handshake = false
[Kunde]
Standardzeichensatz = utf8mb4
[mysql]
Standardzeichensatz = utf8mb4

  • Ändern Sie die Zeichensatzkodierung der Datenbank und führen Sie nach der Anmeldung bei MySQL die folgende SQL-Anweisung aus.
# Legen Sie die Zeichensatzkodierung der Datenbank fest. Chat_System ist der Datenbankname. Entsprechend Ihrer tatsächlichen Situation ALTER DATABASE Chat_System CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • Ändern Sie die Zeichensatzkodierung der Datenbanktabelle und führen Sie nach der Anmeldung bei MySQL die folgende SQL-Anweisung aus.
# Legen Sie die Zeichensatzkodierung der Datenbanktabelle fest. chat_system.feedback_comment_reply ist der entsprechende Tabellenname in meiner Datenbank. ALTER TABLE chat_system.feedback_comment_reply CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Nachdem wir die oben genannten Vorgänge abgeschlossen haben, überprüfen wir, ob die Änderung erfolgreich war. Melden Sie sich bei MySQL an und führen Sie die folgende SQL-Anweisung aus.

VARIABLEN ANZEIGEN, WO Variablenname WIE ‚Zeichen%‘ ODER Variablenname WIE ‚Sortierung%‘;

Wenn untergeordnete Informationen angezeigt werden, bedeutet dies, dass wir die Änderung abgeschlossen haben.

Testfälle

Fügen wir zum Testen einen Emoji-Ausdruck ein:

UPDATE chat_system.feedback t SET t.comments = 'Feedback-Informationstest 😂' WHERE t.id = 1;

Wie unten gezeigt wird kein Fehler gemeldet und das Einfügen ist erfolgreich.

Wir verwenden dataGrap, um die Daten in der Datenbanktabelle anzuzeigen. Wie unten gezeigt, wird ein ? angezeigt, was bedeutet, dass die Software es nicht erkennen kann.

Logischerweise sollte das Einfügen erfolgreich sein. Wir probieren es mit der Postman-Request-Schnittstelle und es wird erfolgreich angezeigt 😄.

Oben finden Sie Einzelheiten zum Einfügen von Emoji-Emoticons in MySQL. Weitere Informationen zum Einfügen von Emoji-Emoticons in MySQL finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Speichern von Emoji-Ausdrücken in MySQL
  • Gründe und Lösungen für das fehlgeschlagene Einfügen 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

<<:  Detaillierte Erklärung der Kommunikation zwischen hierarchisch verschachtelten Komponenten in der Vue-Frontend-Entwicklung

>>:  Implementierungscode für die teilweise Aktualisierung einer HTML-Seite

Artikel empfehlen

17 404-Seiten, die Sie erleben möchten

Wie können wir sagen, dass wir 404 vermeiden soll...

Grundsätze und Nutzungsdetails für MySQL 8.0-Benutzer- und Rollenverwaltung

Dieser Artikel beschreibt die Benutzer- und Rolle...

js Array-Einträge () Holen Sie sich die Iterationsmethode

Inhaltsverzeichnis 1. Detaillierte Syntax der Met...

Detaillierte Erklärung des JavaScript ES6-Moduls

Inhaltsverzeichnis 0. Was ist ein Modul 1.Modul l...

MySQL Master-Slave-Prinzip und Konfigurationsdetails

MySQL Master-Slave-Konfiguration und Prinzip, zu ...

W3C Tutorial (15): W3C SMIL Aktivitäten

SMIL fügt Unterstützung für Timing und Mediensync...

HTML-Lernhinweise – Detaillierte Erklärung der HTML-Syntax (unbedingt lesen)

1. Was ist die HTML-Auszeichnungssprache? HTML is...

Reine CSS-Implementierung eines Radio- und Checkbox-Effektbeispiels

Radio und Kontrollkästchen Reines CSS zum Erziele...

Verwenden Sie CSS, um einen kreisförmigen Welleneffekt zu erzielen

Auf Mobilgeräten sehe ich häufig kreisförmige Wel...

Referenzen und Referenzdetails in Vue3

Der Editor teilt Ihnen auch die entsprechenden Pr...

So löschen Sie schwebenden Beispielcode in CSS

Überblick Das Rahmendiagramm dieses Artikels ist ...

Allgemeine Tags in XHTML

Was sind XHTML-Tags? XHTML-Tag-Elemente sind die ...