Comment puis-je supprimer emoji caractères d'une chaîne?

J'ai une saisie de texte à partir d'un appareil mobile. Il contient des emoji. En C#, j'ai le texte comme

Text 🍫🌐 text

Tout simplement, je veux que le texte de sortie pour être

Text text

J'essaie seulement de supprimer tous ces émoticônes à partir du texte avec rejex.. sauf, je ne suis pas sûr de savoir comment convertir les émoticônes dans une séquence unicode..
Comment dois-je faire?

edit:

J'essaie de sauver la saisie de l'utilisateur dans mysql. Il ressemble à mysql en UTF8 n'est pas vraiment en charge les caractères unicode et les bonne façon de le faire serait par la modification du schéma mais je ne pense pas que ce soit une option pour moi. Donc j'essaye seulement de supprimer tous les caractères emoji avant de l'enregistrer dans la base de données.

C'est mon schéma pour la colonne correspondante:

Comment puis-je supprimer emoji caractères d'une chaîne?

Je suis en utilisant Nhibernate comme mon ORM et de la requête d'insertion généré ressemble à ceci:

Insert into `Content` (ContentTypeId, Comments, DateCreated) 
values (?p0, ?p1, ?p2);
?p0 = 4 [Type: Int32 (0)]. ?p1 = 'Text 🍫🌐 text' [Type: String (20)], ?p2 = 19/01/2015 10:38:23 [Type: DateTime (0)]

Quand je copie cette requête à partir de journaux et de les exécuter sur mysql directement, j'obtiens cette erreur:

1 warning(s): 1366 Incorrect string value: '\xF0\x9F\x98\x80 t...' for column 'Comments' at row 1   0.000 sec

Aussi, j'ai essayé de le convertir en codage des octets et il ne fonctionne pas vraiment..

Comment puis-je supprimer emoji caractères d'une chaîne?

  • Ce n'est pas vraiment clair ce que vous essayez d'atteindre - que feriez-vous avec la valeur de la chaîne après le remplacement de caractères?
  • édité le post, merci.
  • UTF-8 doit être vraiment très bien ici. Pouvez-vous poster les détails de la façon dont vous êtes en train d'essayer de sauver les données, ainsi que vos informations de schéma?
  • Voir ici: gist.github.com/adamlwatson/9623703
  • (En supposant que vous voulez supprimer, plutôt que de trier votre encodage)
  • ajouté l'info.
  • La version de MySQL êtes-vous sur? Apparemment le jeu de caractères utf8mb4 devrait rendre les choses tikitiboo... lire la réponse ici stackoverflow.com/questions/24253985/... "Il semble que MySQL supporte deux formes de l'unicode ucs2 qui est en 16 bits par caractère et utf8 jusqu'à 3 octets par caractère. La mauvaise nouvelle, c'est que ni la forme ne va appuyer plan 1 caractères qui nécessitent au 17 bits. (principalement des emoji). Il ressemble à MySQL 5.5.3 et aussi de soutien utf8mb4, utf16, et utf32 et des caractères supplémentaires (lire emoji)"
  • Vous n'avez pas montré en fait le code que vous utilisez. Le message d'erreur ne semble pas cadrer avec le codage UTF-8 pour l'une de ces valeurs, ce qui est étrange...
  • oui, j'ai été le tester avec un peu d'émoticônes, de sorte que le message est pour un autre emoji. Aussi, vous ne savez pas ce que vous entendez par code? J'utilise régulièrement nhibernate référentiel qui permet d'économiser de l'objet avec public virtual String Comments { get; set; } de la propriété. La requête d'insertion produit est très bien, c'est juste que mysql db ne peut pas gérer l'unicode.
  • Je ne pense pas que la modification du schéma est une option, mais il va essayer de parler à dba à ce sujet! ce dont j'ai besoin est quelque chose comme ce que Octopid a mentionné, mais en c#, mais je juste ne pouvez pas sembler être capable de regex les émoticônes!
  • Quelque chose d'être conscient de stackoverflow.com/questions/10992921/... "Cependant, notez qu'il y a d'autres personnages dans le Plan Multilingue de Base qui sont utilisés comme des emoji par des téléphones, mais qui sont antérieurs à long emoji. Par exemple U+2665 est la traditionnelle Cœur Costume de personnage ♥, mais il ma rendu un emoji graphique sur certains appareils. C'est à vous de décider si vous traiter cela comme emoji et d'essayer de les supprimer."
  • Octopoid l'essentiel n'est pas de les convertir, il les supprime. Si vous voulez seulement de supprimer tous les caractères non dans le BMP, qui est assez facile.
  • oui, je veux juste retirer! mais pour les enlever je dois regex match et c'est là que je suis coincé maintenant.
  • "Afin de convertir correspondant \uxxxx caractères" n'est qu'un leurre?

InformationsquelleAutor LocustHorde | 2015-01-19