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

Beispiel für die Anpassung von rem an mobile Geräte

Vorwort Überprüfung und Zusammenfassung von REM-A...

Was ist Software 404 und 404-Fehler und was ist der Unterschied zwischen ihnen

Zunächst einmal: Was ist 404 und Soft 404? 404: Ei...

So überprüfen Sie die Speichernutzung unter Linux

Bei der Behebung von Systemproblemen, Anwendungsv...

Zusammenfassung der Verwendung von JavaScript JSON.stringify()

Inhaltsverzeichnis 1. Nutzung 1. Grundlegende Ver...

Implementierung der virtuellen React-Liste

Inhaltsverzeichnis 1. Hintergrund 2. Was ist eine...

So erhalten Sie die dynamische Anzahl der verbleibenden Wörter im Textbereich

Ich bin bei der Arbeit auf einen Fall gestoßen, ü...