Android - Wie filter-emoji (emoticons) aus einem string?
Arbeite ich an einer Android app, und ich nicht will, dass die Leute verwenden Sie emoji in der Eingabe.
Wie kann ich Sie entfernen emoji-Zeichen aus einem string?
Reguläre Ausdrücke sind eine option. Oder wenn Sie die Liste der emojis ist bekannt, eine einfache Liste, die Sie Durchlaufen können, und entfernen Sie entspricht in Ihren Eingang gut funktionieren würde.
Siehe stackoverflow.com/questions/12013341/...
Können Sie Charakter-Klasse stackoverflow.com/questions/28366172/check-if-letter-is-emoji/...
Das ist nicht das, was hier gefragt. Die Charakter-Klasse kann in der Tat erkennen surrogate-Paare, aber das bedeutet nicht, dass der Charakter ist ein emoji. E. g. U+1D120 ist nicht ein emoji, ist aber ein ersatzpaar.
Siehe stackoverflow.com/questions/12013341/...
Können Sie Charakter-Klasse stackoverflow.com/questions/28366172/check-if-letter-is-emoji/...
Das ist nicht das, was hier gefragt. Die Charakter-Klasse kann in der Tat erkennen surrogate-Paare, aber das bedeutet nicht, dass der Charakter ist ein emoji. E. g. U+1D120 ist nicht ein emoji, ist aber ein ersatzpaar.
InformationsquelleAutor Jochem Kuijpers | 2014-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Emojis können gefunden werden in die folgenden Bereiche (Quelle) :
Können Sie diese Zeile in Ihrem Skript zu filtern, Sie alle auf einmal:
text.replace("/[\u2190-\u21FF]|[\u2600-\u26FF]|[\u2700-\u27BF]|[\u3000-\u303F]|[\u1F300-\u1F64F]|[\u1F680-\u1F6FF]/g", "");
welchen Fällen muss es nicht behandeln? Es ist nicht hilfreich zu sagen "dies nicht alle Fälle behandeln", wenn Sie nicht haben, ein Beispiel.
Funktioniert nicht auf Xperia Z 4.4
\u rechnet mit 4 stellen-wie soll das funktionieren für 1f300 etc?
Funktioniert nicht. Am Ende habe ich verwendet github.com/vdurmont/emoji-java. Zum Beispiel, entfernen Sie alle emojis: EmojiParser.removeAllEmojis(text);
InformationsquelleAutor Faez Mehrabani
Neuesten emoji-Daten können hier gefunden werden:
http://unicode.org/Public/emoji/
Gibt es einen Ordner mit dem Namen mit emoji-version.
Als app-Entwickler eine gute Idee ist die Verwendung der neuesten version verfügbar.
Aussehen, wenn Sie in einen Ordner, sehen Sie text-Dateien in es.
Sie sollten überprüfen, emoji-data.txt. Es enthält alle standard-emoji-codes.
Gibt es viele kleine symbol code-Bereiche für emoji.
Am besten unterstützt wird, überprüfen Sie alle diese in Ihrem app.
Einige Leute Fragen, warum gibt es 5-stellige codes, wenn wir nur angeben 4 nach \u.
Gut mit diesen codes aus ersatzzeichenpaare. In der Regel werden 2 Symbole verwendet, um codieren eines emoji.
Wir haben zum Beispiel einen string.
UTF-16-Darstellung
Durchlaufen UTF-16
Bekommen einen char
Überprüfen Sie nun, für ersatzzeichenpaare. Emoji befinden sich auf der ersten Ebene, so überprüfen Sie bitte zuerst Teil-pair-Mädchen im Bereich 0xd800..0xd83f.
Für den zweiten Teil von Surrogat-paar-Sortiment ist 0xdc00..0xdfff. Und wir können jetzt konvertieren Sie ein paar zu einem 5-stelligen code.
Alle anderen Symbole sind nicht Paaren, so Verfahren, als Sie ist.
Nun die Verwendung von Daten aus emoji-data.txt um zu überprüfen, ob es emoji.
Wenn es so ist, dann überspringen Sie es. Wenn nicht, dann kopieren, Byte Ausgabe byte-array.
Schließlich byte-Arrays in eine Zeichenfolge konvertiert, die von
InformationsquelleAutor NoAngel
Hier ist, was ich verwenden, um entfernen emojis. Hinweis: Dies funktioniert nur auf API 24 und leitet
InformationsquelleAutor Andrew Moreau