Pourquoi des emoji comme 💩 apparaissent-ils lorsque j'utilise Safari, mais pas Chrome?


30

Pourquoi des emoji comme 💩 apparaissent-ils lorsque j'utilise Safari, mais pas Chrome sur le même MacBook exécutant Lion? Les deux navigateurs utilisent WebKit, et j'imagine que la prise en charge des polices provient du système d'exploitation, pas de l'application.

Pour référence, voici la page rendue dans Chrome 17.0.963.56:

Chrome 17.0.963.56

Et voici la page rendue dans Safari 5.1.3 (7534.53.10):

Safari 5.1.3 (7534.53.10)


9
Je le vois dans Chrome et je ne vois pas le 💩 dans la question ou le titre, mais je le vois dans le titre de l'onglet en haut de la fenêtre.
CajunLuke

Je passe rarement la souris sur des onglets pour voir le titre de la page complète, mais vous avez raison, c'est effectivement le cas. C'est très surprenant.
Jason Salaz

Il se pourrait que les plug-ins Chrome dans sa propre palette de caractères, qui pourrait être une version hybride entre la native et la propriétaire. Et ils ont juste besoin de le mettre à jour pour OS X. Mais je sais que les emoji ne sont pas seulement une question de type de police (vous ne pouvez pas porter d'emoji sur SL par exemple en installant simplement la police respective). Il y a donc plus que la simple lecture d'un nouveau type de police. Je déposerais un bogue avec Google. Ou demandez un support complet.

14
Étant donné que les visiteurs avec Chrome auront du mal à lire le titre, je vote pour remplacer le titre par "Comment puis-je produire des morceaux sur Google Chrome?"
Gerry

@cksum J'ai rétabli le titre car il est devenu un élément d'information pertinent dans la question.
Jason Salaz

Réponses:


27

La différence réside dans les moteurs de rendu pour les fenêtres du navigateur.

Nous savons que Safari rend le jeu de caractères différemment de Chrome. Mais les éléments de l'interface utilisateur de Windows (les onglets dans Chrome) sont corrects. C'est notre plus grand indice.

Les éléments de l'interface utilisateur de la fenêtre sont susceptibles (accent sur probable, je ne suis peut-être pas correct ici) tous rendus par le système d'exploitation. Ils bénéficient donc du traitement d'expansion emoji complet au niveau du système d'exploitation.

Mais ce qui se passe dans une fenêtre de navigateur Web dépend entièrement du navigateur. Les moteurs de rendu sont une grande partie de la sauce secrète de chaque navigateur.

Safari et Chrome utilisent WebKit, mais les similitudes entre les instances WebKit qu'ils utilisent s'arrêtent quelque part autour du nom du moteur. Ils sont tous les deux des fourchettes de la version principale et ils sont tous deux fortement personnalisés pour améliorer les performances de manière que chaque équipe de développement de navigateur juge utile pour leurs utilisateurs finaux.

@JasonSalaz a trouvé un excellent bogue dans la base de données de bogues de Chrome qui nous donne le dernier indice qu'il s'agit de fourches WebKit: http://code.google.com/p/chromium/issues/detail?id=90177 - ce bogue est parler des différences entre le fork de Chrome et la ligne principale de WebKit du projet open source. Il existe des différences de rendu dans la ligne principale qui n'ont pas encore été intégrées à la version utilisée par Chrome. Et il semble qu'ils ont l'intention de fusionner les modifications à un moment donné.

Mise à jour: Paul Irish a un excellent article de blog sur la façon dont WebKit diffère pour tous ces navigateurs qui l'utilisent actuellement . Si vous voulez vraiment comprendre à quel point l'environnement WebKit est diversifié, c'est une excellente lecture.


Argh. Aurait dû saisir quelques captures d'écran. Eh bien ...
Ian C.

Le ticket de bogue Chromium qui suit le support Emoji est celui-ci: crbug.com/62435 Celui auquel vous avez lié est un doublon.
Mathias Bynens

Pour mémoire: il est toujours cassé dans Chrome 20.0.1132.57.

Oh super, selon le commentaire 17 du rapport de bogue, ce problème a été résolu. Si quelqu'un veut se plaindre à nouveau, vous devez déposer un nouveau rapport de bogue.
gentmatt

1
Il fonctionne maintenant à partir de Chrome 41! 🚀🚀🚀🚀🚀🚀🚀
yincrash

12

Vous pouvez utiliser l'extension Chrome Chromoji . C'est une solution de contournement qui remplacera les emoji par des images intégrées dans les pages Web.


2
Fonctionne totalement, pour Twitter au moins, ne supprimez pas la réponse.
MarcusJ

2

Le problème est que votre navigateur utilise un codage de caractères différent de celui du document que vous consultez.

Alors, comment le navigateur sait-il quel encodage de caractères utiliser?

  1. Il peut être spécifié dans HTTP à l'aide de l'en- Content-Typetête.
  2. Il peut être spécifié pour le document HTML à l'aide de l' metaélément.
  3. Il peut être spécifié pour un élément HTML spécifique à l'aide de l' charsetattribut.

Si aucun de ceux-ci n'est spécifié, différents navigateurs utilisent différentes techniques pour deviner le bon codage des caractères. Certains utilisent l'heuristique. Certains permettent à l'utilisateur de spécifier un codage de caractères. Certains sélectionnent l'encodage de caractères par défaut du système d'exploitation.

Si aucun de ces éléments ne sort, vous obtenez le charabia, également connu sous le nom de mojibake.

Donc, pour répondre directement à votre question: Safari et Chrome essaient différentes choses pour trouver le bon encodage de caractères.


3
Affichage -> L'encodage de texte dans Safari indique «Par défaut». Affichage -> L'encodage dans Chrome indique «UTF-8». Les préférences de Safari indiquent que l'encodage par défaut est occidental (ISO Latin 1). Si je change l'encodage dans Chrome en Western (ISO-8859-1), Western (Windows-1252) ou Western (Macintosh), je ne vois toujours pas les emoji corrects, mais je vois du charabia au lieu de l'espace vide. Je ne pense pas que ce soit aussi simple que le codage de caractères. Je soupçonne qu'il y a des différences de rendu. (suite ...)
Ian C.

1
(suite de ci-dessus) Cela expliquerait la barre de titre montrant les emoji (le texte est probablement rendu par le moteur de rendu d'OS X car c'est un élément graphique sur une fenêtre) et le corps de la page est rendu par le propre moteur de rendu de Chrome.
Ian C.

1
@IanC. c'est probablement digne de réponse si vous développez un peu plus. Chrome utilise WebKit, mais sinon aucune des classes d'ObjC / Cocoa qui supportent nativement les emoji. C'est après tout la fonctionnalité n ° 1 de Chrome, méchante et rapide qui n'est invariablement obtenue qu'avec une solution personnalisée. Donc, Chrome devrait soit explicitement écrire le support des emoji, soit arrêter de faire ce qui fait que les gens les préfèrent à Safari et aux autres navigateurs. (Devinez lequel est le plus probable?)
Jason Salaz


@JasonSalaz belle capture avec ce rapport de bogue. Voilà la dernière pièce. Rédaction de la réponse!
Ian C.

0

Allez dans la barre de menu Chrome, cliquez sur "Plus d'outils" → "Encodage" et choisissez un nouveau format d'encodage. J'utilise "Unicode UTF-8", cela semble fonctionner pour moi.


-1

https://code.google.com/p/chromium/issues/detail?id=62435 a été marqué comme corrigé récemment; à partir de la version 41, les emoji devraient s'afficher correctement dans Chrome.


1
Bien qu'utile, ce n'est pas vraiment une réponse. Cela n'explique pas pourquoi cela se produisait. Il vaut mieux laisser un commentaire OMI.
Ian C.

Cela est arrivé parce que le support des emojis n'a pas été implémenté. La question n'aura donc plus de sens une fois que m41 sera stable.
thakis du

-9

Le symbole est un personnage créé par Apple. Safari utilise son propre jeu de caractères.


5
En fait, "pile de caca" est un caractère standard international en Unicode - symbole 1F4A9 et même pas spécifique à Apple et encore moins quelque chose de spécial à Safari. Voir l'entrée Wikipedia sur Emoji et ce PDF pour plus de détails.
bmike

2
Bien que le personnage ne soit pas unique à Apple, les couleurs le sont. Je ne connais aucune autre police de couleur à ce jour et je pense qu'Apple a créé son propre standard pour le faire (une table sbix propriétaire). Diverses applications ne reconnaîtront pas cette police, mais s'afficheront à partir de la police normale noire / blanche Symbola.
Tom Gewecke

1
PS Parce qu'il y a en effet quelque chose d '"Apple unique" dans cette police, je pense que cette réponse n'est pas aussi éloignée que la note négative pourrait le suggérer.
Tom Gewecke

@TomGewecke, "Safari utilise son propre jeu de caractères" est tout simplement faux. Je pense donc que les notes négatives sont méritées.
jbg
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.