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.
Wir müssen also Folgendes tun:
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.
[mysqld] Zeichensatzserver = utf8mb4 Sortierserver = utf8mb4_unicode_ci init_connect = "Namen festlegen utf8mb4" Zeichensatz-Client-Handshake = false [Kunde] Standardzeichensatz = utf8mb4 [mysql] Standardzeichensatz = utf8mb4
# 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;
# 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:
|
>>: Implementierungscode für die teilweise Aktualisierung einer HTML-Seite
Ich bin auf ein Problem gestoßen. Wenn beim Teste...
Docker Compose kann die Orchestrierung von Docker...
Was ist eine Richtlinie? Sowohl Angular als auch ...
Vorwort Die Master-Slave-Replikationsbeziehung vo...
1. Download-Adresse: http://dev.mysql.com/downloa...
Dieser Artikel stammt aus Tom Ewers Managewp-Blog ...
1. Grundlegende Implementierung des Limits Im All...
Vorwort Dieser Artikel stellt hauptsächlich die d...
Ich habe schon immer Graustufenbilder bevorzugt, d...
Vorwort Bei der Webentwicklung sind häufig domäne...
Vorwort Studenten, die JavaScript lernen, wissen,...
Vor zwei Tagen habe ich das Double 11-Shopping-Fe...
Beziehung zwischen MySQL und MariaDB Das Datenban...
Als ich kürzlich eine mobile Seite entwickelte, s...
Inhaltsverzeichnis 1. Was ist Promise? 2. Warum g...