Heim > Artikel > Backend-Entwicklung > Lösung zur Verwendung von Emoji-Ausdrücken in PHP-Projekten
Im täglichen Leben kommt es häufig vor, dass der von Benutzern gesendete Inhalt Emoji-Ausdrücke enthält. Wenn er nicht verarbeitet wird, wird er bei der Anzeige verstümmelt. Daher werden in diesem Artikel verschiedene Verarbeitungsmethoden für Emoji-Ausdrücke in der PHP-WeChat-Entwicklung vorgestellt. Ich hoffe, es hilft allen.
Hintergrund
Wenn Sie WeChat entwickeln, werden Sie feststellen, dass das Speichern von WeChat-Spitznamen unerlässlich ist.
Aber der verdammte WeChat unterstützt Emoji-Ausdrücke als Spitznamen, was etwas schmerzhaft ist
Im Allgemeinen wird beim Entwerfen von MySQL-Tabellen der UTF8-Zeichensatz verwendet. Verschieben Sie das Spitznamenfeld mit dem Emoji in insert
und es verschwindet und das gesamte Feld wird zu einer leeren Zeichenfolge. Was ist los?
Es stellt sich heraus, dass der UTF8-Zeichensatz von MySQL 3 Byte groß ist, während Emoji 4 Byte groß ist, sodass nicht der gesamte Spitzname gespeichert werden kann. Was zu tun? Lassen Sie mich mehrere Methoden vorstellen
Lösungen
1. Verwenden Sie den utf8mb4-Zeichensatz
Wenn Ihre MySQL-Version>=5.5.3
, Sie können utf8
direkt auf den utf8mb4
-Zeichensatz
aktualisieren. Diese 4-Byte-UTF8-Kodierung ist perfekt kompatibel mit dem alten 3-Byte-UTF8-Zeichensatz und kann Emoji-Ausdrücke direkt speichern
Was den Leistungsverlust betrifft, der durch die Erhöhung der Bytes verursacht wird, habe ich einige Rezensionen gelesen und er ist nahezu vernachlässigbar
2. Verwenden Sie die Base64-Kodierung
Wenn Sie ihn nicht verwenden können Aus irgendeinem Grund können Sie base64
auch zum Speichern des Landes verwenden. Mit Funktionen wie
können Emojis direkt im utf8-Bytesatz gespeichert und beim Empfang einfach dekodiert werden raus base64_encode
3. Emoji-Ausdrücke loswerden
Emoji-Ausdrücke sind eine lästige Sache, aber sie sind möglicherweise nicht perfekt. Auf anderen Plattformen als iOS, wie PC oder Android. Wenn Sie Emojis anzeigen müssen, müssen Sie viele Emoji-Bilder vorbereiten und eine Front-End-Bibliothek eines Drittanbieters verwenden. Trotzdem ist die Anzeige möglicherweise immer noch unmöglich, da Emoji-Bilder nicht vollständig genug sind. In den meisten Geschäftsszenarien sind Emojis nicht erforderlich. Wir können darüber nachdenken, es angemessen loszuwerden und verschiedene Kosten zu sparen Nach langem Suchen haben wir endlich einen zuverlässigen und verwendbaren Code gefunden:// 过滤掉emoji表情 function filterEmoji($str) { $str = preg_replace_callback( '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str); return $str; }
Verwandte Empfehlungen:
So generieren Sie ein MySQL-Datenwörterbuch in PHP
PHP implementiert die Wortstatistikfunktion
Das obige ist der detaillierte Inhalt vonLösung zur Verwendung von Emoji-Ausdrücken in PHP-Projekten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!