2017-06-07 1 views
1

J'ai eu un emoji sur mon site depuis des mois, mais soudainement, il apparaît comme le code ou les caractères plutôt que comme une image? Quand je le regarde en local, il affiche comme il se doit, mais quand je le vois sur le site web en direct, j'obtiens les caractères à la place. J'ai essayé de vider ma cache.Pourquoi cet emoji unicode est-il affiché en tant que caractère et non en tant qu'image lorsqu'il est diffusé en direct?

De plus, si je colle un doigt pointant vers le haut, cela fonctionne. Je suis sûr que cela vient d'un manque de compréhension sur le fonctionnement de l'Unicode, mais je n'ai pas trouvé de ressource décente pour m'aider.

Exemple pour cela:

enter image description here

Merci pour votre aide!

+0

Avez-vous un code que nous pouvons examiner? – Wernerson

Répondre

2

Le code HTML n'est probablement pas encodé dans le jeu de caractères qu'il (ou le serveur Web) prétend être codé, ce qui entraîne l'interprétation incorrecte des données par le navigateur. L'Emoji que vous avez montré, U + 1F447(), est codé sous la forme F0 9F 91 87 en UTF-8. Ces mêmes octets sont 👇 lorsqu'il est interprété en tant que Latin-1.

Vous avez probablement configuré votre navigateur Web pour forcer l'interprétation des données en UTF-8, ce qui expliquerait pourquoi vous voyez correctement les Emoji. Vérifiez à nouveau les balises <meta> de votre HTML et/ou l'en-tête Content-Type de votre serveur Web, pour vous assurer que le charset correct est en train de rapporter aux navigateurs.

Vous pouvez également utiliser des entités HTML au lieu d'octets UTF-8 bruts, vous n'avez donc pas à vous soucier des jeux de caractères. L'entité HTML pour U + 1F447 peut être écrit soit:

&#128071; (