2010-08-25 3 views
1

J'essaie de lire du texte à partir d'un fichier plist et de l'afficher aux utilisateurs dans la boîte d'alerte.Les iCons Emoji ne s'affichent pas correctement lorsqu'ils sont lus à partir du plist

Lorsque je construis la chaîne en utilisant ce code, tout fonctionne (les utilisateurs voit Bonjour avec une icône smily):

NSString *hello = @"Hello \ue415"; 

mais quand je reçois la chaîne de plist, en utilisant ce code, utilise voit « Bonjour \ ue415" :

NString *hello = (NSString *)[pageLiteratureDic objectForKey:litratureKey]; 

dois-je encoder la chaîne différemment? Toute aide ou pointeur sera très apprécié ... tout le monde aime emojis;)

Répondre

0

Dans le plist, au lieu de "Hello \ ue415", essayez d'utiliser explicitement le smiley comme dans "Hello :)". Il suffit de couper et coller le caractère smily sur le code Unicode. La lecture du plist échappe probablement à l'antislash et stoppe l'interprétation en tant que caractère unicode.

+0

Je ne pense pas que c'est le cas, je suis en mesure d'imprimer Bonjour \ ue415 à NSLog ... également noter arrive quand je coupe et colle le caractère smily rien ne se passe :( – user348398

+0

Lorsque vous collez le visage smily dans le fichier plist et lisez-le, obtenez-vous une chaîne vide ou voyez-vous à nouveau les caractères \ ue415? –

+0

C'est ce que j'ai fini par utiliser J'ai envoyé les emojis de mail app à gmail sur mon mac, puis copié et collé dans le plist. peut ensuite être traité comme n'importe quel autre nsstring sans mise en forme unicode spéciale requise. –

2

Vous ne devez pas littéralement taper "\ ue415" comme texte dans le fichier plist. \ u .... est une séquence d'échappement dans la syntaxe des chaînes et caractères dans le langage C. La chaîne elle-même ne contient pas de barre oblique inverse et "u" et quoi que ce soit, il contient seulement 1 caractère, le caractère Unicode au codepoint 0xe415. Si vous voulez sauvegarder cela dans un plist, vous devez taper manuellement ce caractère Unicode vous-même, en vous assurant d'utiliser le codage requis pour un plist (peut-être utf-8 ou utf-16, pas sûr). Alternativement, vous pouvez écrire un programme qui crée une plist à partir de cette chaîne, puis copiez et collez tout ce qui se trouve dans ce fichier plist dans votre fichier.

Questions connexes