web-dev-qa-db-fra.com

Pourquoi les emoji à cœur rouge nécessitent-ils deux points de code, mais les autres cœurs colorés en ont-ils besoin?

Il semble que l'emoji coeur rouge (❤️) "\ u2764\uFE0F" nécessite deux points de code Unicode, en particulier Heavy Black Heart suivi d'un Variation Selector . Cependant, bleu ???? , vert ???? , jaune ???? , et violet ??? ? chacun a son propre point de code unique.

Pourquoi le rouge est-il si différent?

72
Newtang

Pour des raisons historiques. À l'origine, il n'y avait que U + 2764 HEAVY BLACK HEART que les premières applications prenant en charge Emojis ont décidé de rendre comme un coeur rouge. Ces premières applications ont toujours rendu U + 2764 en Emoji. Plus tard, il a été réalisé que c'était une mauvaise idée et les sélecteurs de variation pour Emojis ont été standardisés. Lorsque des émojis cardiaques supplémentaires ont été ajoutés, il n'y avait pas besoin d'un autre cœur rouge, il a donc été omis. Au lieu de cela, il y a un emoji coeur noir U + 1F5A4 ???? séparé.

En théorie, une application pourrait nécessiter que le sélecteur de variation Emoji soit également ajouté à d'autres points de code cardiaque. Mais cela n'a pas beaucoup de sens de rendre des personnages comme PURPLE HEART en tant que non-Emoji. Cependant, cela fait une différence pour HEAVY BLACK HEART, qui est souvent destiné à être rendu comme le caractère original et simple du cœur noir lourd.

60
nwellnhof

HEAVY BLACK HEART a été ajouté à Unicode des décennies avant les emoji. Lorsque les emoji ont été incorporés dans Unicode 6, certains caractères déjà existants ont été simplement réutilisés comme emoji pour éviter les doublons inutiles. Plus tard, des séquences de variation ont été définies pour les personnages qui correspondent également à un jeu de caractères non emoji pour permettre un meilleur contrôle sur la façon dont ils s'affichent. Par exemple, U + 2744 ❄ FLOCON DE NEIGE est originaire de Zapf Dingbats (je crois) mais a ensuite été également fait un emoji. Donc, si vous souhaitez forcer l'affichage de style texte d'origine, vous pouvez utiliser VARIATION SELECTOR-15 (résultant en ❄︎), et si vous voulez forcer l'affichage de style emoji plus récent, vous pouvez utiliser VARIATION SELECTOR-16 (résultant en ❄️).

Notez, cependant, que peu de plates-formes prennent actuellement en charge ces séquences de variation correctement pour le moment. De plus, tous n'appliquent pas automatiquement les sélecteurs de variation lors de l'utilisation du clavier emoji. En théorie, ❤ et ❄ (et beaucoup d'autres emoji ) devraient s'afficher comme style de texte par défaut sans VS16, mais de nombreuses applications l'ignorent également.

J'ai une liste de tous les points de code qui peuvent s'afficher différemment via une séquence de variation, sur mon site Web, si vous êtes intéressé . La prochaine mise à jour Unicode en juin va en ajouter d'autres.

29
CharlotteBuff