Pourquoi ne emoji ont deux différents utf-8 codes? Comment faire pour convertir les émoticônes de l'utf-8 , l'utilisation NSString dans ios?

Nous avons trouvé un problème, que certains emoji ont deux utf-8 codes, tels que:

emoji   unicode    utf-8                another utf-8
😁      U+1F601    \xf0\x9f\x98\x81     \xed\xa0\xbd\xed\xb8\x81

Mais ios langue ne peut pas décoder l'autre type de l'utf-8, donc résultant d'une erreur lorsque j'essaie de décoder la chaîne de caractères utf-8.

Pourquoi ne emoji ont deux différents utf-8 codes? Comment faire pour convertir les émoticônes de l'utf-8 , l'utilisation NSString dans ios?


Dans tous les documents que j'ai trouvé, je peux juste trouver un type d'utf-8 code pour un emoji, pas de où trouver les autres.

Documents que j'ai référencé comprend:

emoji lien de code

toute l'utf-8 code de lien

Mais dans un outil web bianma, toutes les deux types de utf-8 code peut être converti en emoji correctement.

Pourquoi ne emoji ont deux différents utf-8 codes? Comment faire pour convertir les émoticônes de l'utf-8 , l'utilisation NSString dans ios?

Pourquoi ne emoji ont deux différents utf-8 codes? Comment faire pour convertir les émoticônes de l'utf-8 , l'utilisation NSString dans ios?


Donc, ma question est :

  1. Pourquoi il y a deux types de utf-8 codes d'un emoji ?
  2. Où est un document qui comporte les deux types de utf-8 codes?
  3. Comment convertir correctement chaîne en utf-8, à l'aide de NSString dans ios langue?
Ce qui m'a intrigué que ma première pensée a été que le long de l'UTF-8 de la représentation a deux UTF-8 pâtés de maisons. Il s'avère qu'il existe deux variantes de l'UTF-8, CESU-8 et Modifié UTF-8, qui encode en UTF-16 style. Vous pouvez être en mesure d'utiliser cet article iphonedevsdk.com/forum/iphone-sdk-development/... pour écrire un décodeur si il n'y a pas de système approprié pour iOS/Objective-C décodeur natif.
C'est la réponse je pense. Vous devriez poster que comme une réponse.
Veuillez ne jamais poster du texte que des images, surtout pas de code ou de sortie.
Merci @roeland. Je pense que la bonne réponse devrait contenir du code de travail, mais comme je ne suis pas Objective-C codeur, je vais le laisser à quelqu'un d'autre pour le ramassage de la gloire 🙂

OriginalL'auteur pinchwang | 2015-12-22