Android - Comment filtrer les emoji (émoticônes) à partir d'une chaîne?
Je suis en train de travailler sur une application Android, et je ne veux pas qu'on emoji dans l'entrée.
Comment puis-je supprimer emoji caractères d'une chaîne?
Les expressions régulières sont une option. Ou si la liste des émoticônes est bien connu, une simple liste que vous pouvez parcourir et supprimer les matches de votre entrée serait bien travailler.
Voir stackoverflow.com/questions/12013341/...
Vous pouvez utiliser la classe de Caractère stackoverflow.com/questions/28366172/check-if-letter-is-emoji/...
Ce n'est pas ce qui est demandé ici. La classe de Caractères peut en effet reconnaître les paires de substitution, mais cela ne signifie pas que le personnage est un emoji. E. g. U+1D120 n'est pas un emoji mais il est une paire de substitution.
Voir stackoverflow.com/questions/12013341/...
Vous pouvez utiliser la classe de Caractère stackoverflow.com/questions/28366172/check-if-letter-is-emoji/...
Ce n'est pas ce qui est demandé ici. La classe de Caractères peut en effet reconnaître les paires de substitution, mais cela ne signifie pas que le personnage est un emoji. E. g. U+1D120 n'est pas un emoji mais il est une paire de substitution.
OriginalL'auteur Jochem Kuijpers | 2014-03-04
Vous devez vous connecter pour publier un commentaire.
Les émoticônes peuvent être trouvés dans les plages suivantes (source) :
Vous pouvez utiliser cette ligne dans le script pour filtrer toutes à la fois:
text.replace("/[\u2190-\u21FF]|[\u2600-\u26FF]|[\u2700-\u27BF]|[\u3000-\u303F]|[\u1F300-\u1F64F]|[\u1F680-\u1F6FF]/g", "");
ce cas n'est-il pas? Il n'est pas utile de dire "ce ne gère pas tous les cas" si vous n'avez pas un exemple.
Ne fonctionne pas sur Xperia Z 4.4
\u s'attend à 4 chiffres -- comment est-ce censé travailler pour 1f300 etc?
Pas de travail. En fin de compte j'ai utilisé github.com/vdurmont/emoji-java. Par exemple, la suppression de tous les émoticônes: EmojiParser.removeAllEmojis(texte);
OriginalL'auteur Faez Mehrabani
Dernière emoji de données peut être trouvé ici:
http://unicode.org/Public/emoji/
Il y a un dossier nommé avec emoji version.
Comme les développeurs d'applications une bonne idée est d'utiliser la dernière version disponible.
Quand Vous regardez à l'intérieur d'un dossier, Vous verrez les fichiers texte.
Vous devriez vérifier emoji-data.txt. Il contient tous les standard emoji codes.
Il y a beaucoup de petit symbole code des plages pour les emoji.
Meilleur soutien sera de vérifier l'ensemble de ces dans Votre application.
Certaines personnes se demandent pourquoi il y a des codes à 5 chiffres lorsque nous ne pouvons spécifier 4 à la suite de \u.
Bien que ces codes sont fabriqués à partir de paires de substitution. Généralement 2 symboles sont utilisés pour coder un emoji.
Par exemple, nous avons une chaîne de caractères.
Représentation UTF-16
Itérer sur UTF-16
Obtenir un char
Maintenant vérifier pour les paires de substitution. Emoji sont situés sur le premier plan, afin de vérifier la première partie de la paire dans la gamme 0xd800..0xd83f.
Pour la deuxième partie de la paire de substitution gamme est 0xdc00..0xdfff. Et nous pouvons maintenant convertir une paire à l'autre, à 5 chiffres du code.
Tous les autres symboles ne sont pas des paires afin de les traiter.
Maintenant utiliser les données de emoji-data.txt pour vérifier si il est emoji.
Si c'est le cas, passez. Si non, alors la copie des octets de sortie octets de tableau.
Enfin le tableau d'octets est converti en Chaîne par
OriginalL'auteur NoAngel
Voici ce que j'utilise pour enlever les émoticônes. Remarque: Cela ne fonctionne que sur l'API 24 et transmet
Ceux ne sont pas les émoticônes
OUI, IL EST. Voir cette. unicode.org/cldr/utility/...
Emoji se propage partout ici et là. C'est pourquoi il est difficile de filtrer tous. Vous pouvez les trouver en Général des signes de Ponctuation, Dingbats, des Émoticônes, des Divers Symboles, Les Symboles Et les Pictogrammes, les suppléments à des Symboles et des Pictogrammes, des Transports et des Symboles de la Carte des blocs. Comme pour "☤", je pense que c'était de la faute de frappe ou quelque chose, mais "❤" est vraiment emoji.
Voir cela aussi. unicode.org/emoji/charts/full-emoji-list.html
OriginalL'auteur Andrew Moreau