Comment puis-je mettre des caractères utf-16 dans la ressource de chaîne Android?
Je veux utiliser les Émoticônes dans mon application cordes. Toutes les chaînes résident, bien sûr, dans strings.xml
Le problème est que pas toutes les Émoticônes sont en 16 bits sympathique. Certaines Émoticônes peut être représenté comme "normal" 16 bits hex: '\u26FF' mais certains sont en 32 bits hexs (UTF-16), est généralement représenté comme: '\x1F600'. Je n'ai pas de problème de traiter avec ceux de l'intérieur, l'application, dans le code. Mais l'strings.xml fichier de ressources est encodés en utf-8, et ne traite pas correctement avec les 16 bits échapper les caractères.
J'ai essayé d'utiliser '\x1F600' - parce que j'ai vu que '\u26FF' fonctionne très bien. Mais il semble ne pas dévorer le 'x' escape char. Ni comme l'expression de la notation '\x{1F600}'
Donc j'ai fini par utiliser une chaîne de caractères de l'espace réservé '%1$s' et de remplissage dans les Emoji dans le code comme ceci:
//greeting_3 is defined as: "hello there %1$s!"
String s = context.getString(R.string.greeting_3, "😜");
//OR:
String s = context.getString(R.string.greeting_3, new String(Character.toChars(0x1F61C)));
Ce n'est pas très élégante, une solution... est-il un bon moyen de mettre les 32 bits de l'UTF-8 caractères strings.xml ?
source d'informationauteur Shoham
Vous devez vous connecter pour publier un commentaire.
Si c'est codé en UTF-8, vous pouvez mettre vos émoticônes directement. Mais alors vous risquez que votre éditeur de texte ou un autre morceau de logiciel qui les détruit.
Si vous êtes de les mettre au format XML, vous pouvez essayer d'utiliser des entités XML:
😀
je ne suis pas sûr de savoir comment bien Android prend en charge eux.Vous pouvez également utiliser les paires de substitution: convertir les émoticônes de l'UTF-16 et de l'utilisation standard
\u
échapper. Vous pouvez par exemple consulter cette page, il vous indique même comment créer une chaîne litaral en Java: http://www.fileformat.info/info/unicode/char/1F600/index.htm→ U+1F600 →
"\uD83D\uDE00"
Je suis en supposant que vous développez quelque chose comme Emoji Clavier. #EmojiCodeSheet peut vous aider sur ce
Du Lien Du Projet: https://github.com/shanraisshan/EmojiCodeSheet
Tout emoji peut être représenté dans 2 différentes forme
Par Exemple : SMILING_FACE_WITH_SUN_GLASS Emoji
Vous pouvez facilement afficher des émoticônes dans Android, soit en les enregistrant au format xml ou java, la liste est présente ci-dessous
vous avez juste besoin de remplacer ces emoji-codes avec l'emoji-images dans votre application android, en faisant quelques lignes de code.
Le moyen le plus facile il juste de copier et de coller l'emoji, il fonctionne à partir d'Android Studio 3.0 et versions plus récentes
Ajouter la ressource comme suit:
Dans Android Studio 3.0, vous pouvez copier et coller un emoji:
Et voici à quoi il ressemble: