¿Por qué aparecen los emojis como when cuando uso Safari, pero no Chrome?

30

¿Por qué aparecen emoji como 💩 cuando uso Safari, pero no Chrome en el mismo MacBook con Lion? Ambos navegadores usan WebKit, y me imagino que el soporte de fuentes proviene del sistema operativo, no de la aplicación.

Para fines de referencia, esta es la página representada en Chrome 17.0.963.56:

Chrome 17.0.963.56

Y esta es la página representada en Safari 5.1.3 (7534.53.10):

Safari 5.1.3 (7534.53.10)

Daniel
fuente
99
Estoy viendo esto en Chrome y no veo el 💩 en la pregunta o el título, pero sí lo veo en el título de la pestaña en la parte superior de la ventana.
CajunLuke
Raramente paso el mouse sobre las pestañas para ver el título de la página completa, pero tienes razón, de hecho lo hace. Eso es muy sorprendente.
Jason Salaz
Puede ser que los complementos de Chrome estén en su propia paleta de caracteres, que podría ser una versión híbrida entre la nativa y la patentada. Y solo necesitan actualizarlo para OS X. Pero sí sé que los emoji no son solo una cuestión de tipo de fuente (por ejemplo, no puede portar emoji a SL simplemente instalando la fuente respectiva). Entonces hay más para ellos que solo leer un nuevo tipo de letra. Presentaría un error con Google. O solicite soporte completo.
14
Dado que los visitantes con Chrome tendrán dificultades para leer el título, voto para cambiar el título a "¿Cómo produzco turds en Google Chrome?"
Gerry
@cksum Revertí el título porque se ha convertido en una información pertinente en la pregunta.
Jason Salaz

Respuestas:

27

La diferencia son los motores de renderizado para las ventanas del navegador.

Sabemos que Safari representa el conjunto de caracteres de manera diferente a Chrome. Pero los elementos de la interfaz de usuario de la ventana (las pestañas en Chrome) están bien. Esa es nuestra mayor pista.

Los elementos de la interfaz de usuario de la ventana son probables (énfasis en probable, es posible que no sea correcto aquí) todos los representa el sistema operativo. Entonces obtienen el tratamiento completo de expansión de emojis a nivel del sistema operativo.

Pero lo que sucede dentro de la ventana de un navegador web depende mucho del navegador. Los motores de renderizado son una gran parte de la salsa secreta de cada navegador.

Tanto Safari como Chrome usan WebKit, pero las similitudes entre las instancias de WebKit que usan se detienen en algún lugar alrededor del nombre del motor. Ambos son tenedores de la versión principal y ambos están muy personalizados para mejorar el rendimiento de manera que cada equipo de desarrollo de navegadores cree que es significativo para sus usuarios finales.

@JasonSalaz encontró un gran error en la base de datos de errores de Chrome que nos da la pista final de que depende de las bifurcaciones de WebKit: http://code.google.com/p/chromium/issues/detail?id=90177 : ese error es hablando de las diferencias entre la bifurcación en Chrome y la línea principal de WebKit del proyecto de código abierto. Hay diferencias de representación en la línea principal que aún no han llegado a la versión que Chrome está utilizando. Y parece que tienen la intención de fusionar los cambios en algún momento.

Actualización: Paul Irish tiene una gran publicación de blog sobre cómo WebKit difiere de todos estos navegadores que actualmente lo usan . Si realmente desea comprender cuán diverso es el entorno de WebKit, esta es una gran lectura.

Ian C.
fuente
Argh Debería haber tomado algunas capturas de pantalla. Oh, bueno ...
Ian C.
El soporte de Emoji para el seguimiento de errores de Chromium es el siguiente: crbug.com/62435 El que vinculaste es un duplicado.
Mathias Bynens
Para el registro: todavía está roto en Chrome 20.0.1132.57.
Oh, genial, según el Comentario 17 en el informe de error, este problema se ha cerrado. Si alguien quiere volver a quejarse, debe presentar un nuevo informe de error.
gentmatt
1
¡Funciona ahora a partir de Chrome 41! 🚀🚀🚀🚀🚀🚀🚀
yincrash
12

Puede usar la extensión de Chrome Chromoji . Es una solución alternativa que reemplazará a los emoji con imágenes incrustadas en las páginas web.

Steffi
fuente
2
Totalmente funciona, al menos para Twitter, no elimine la respuesta.
MarcusJ
2

El problema es que su navegador está usando una codificación de caracteres diferente de la del documento que está viendo.

Entonces, ¿cómo sabe el navegador qué codificación de caracteres usar?

  1. Se puede especificar en HTTP usando el Content-Typeencabezado.
  2. Se puede especificar para el documento HTML utilizando el meta elemento
  3. Se puede especificar para un elemento HTML específico utilizando el charsetatributo

Si no se especifica ninguno de ellos, los diferentes navegadores utilizan diferentes técnicas para adivinar la codificación de caracteres correcta. Algunos usan heurística. Algunos permiten al usuario especificar una codificación de caracteres. Algunos seleccionan la codificación de caracteres predeterminada del sistema operativo.

Si ninguno de estos sale, obtienes el galimatías, también conocido como mojibake.

Entonces, para responder su pregunta directamente: Safari y Chrome están intentando diferentes cosas para encontrar la codificación de caracteres correcta.

james.garriss
fuente
3
Ver -> La codificación de texto en Safari dice 'Predeterminado'. Ver -> La codificación en Chrome dice 'UTF-8'. Las preferencias de Safari dicen que la codificación predeterminada es occidental (ISO Latin 1). Si cambio la codificación en Chrome a Western (ISO-8859-1), Western (Windows-1252) u Western (Macintosh), todavía no veo el emoji correcto, pero sí veo galimatías en lugar de espacio vacío. No creo que sea tan simple como la codificación de caracteres. Sospecho que hay diferencias de representación. (continuación ...)
Ian C.
1
(continúa desde arriba) Eso explicaría la barra de título que muestra el emoji (es probable que el motor de renderizado de OS X represente el texto, ya que es un elemento gráfico en una ventana) y el cuerpo de la página lo representa el propio motor de renderizado de Chrome.
Ian C.
1
@IanC. eso probablemente sea digno de respuesta si lo amplía un poco más. Chrome usa WebKit, pero por lo demás no es una de las clases de ObjC / Cocoa que admite de forma nativa emoji. Después de todo, es la función # 1 de Chrome, increíblemente rápida que invariablemente solo se logra con una solución personalizada. Entonces, Chrome tendría que escribir explícitamente soporte para emoji, o dejar de hacer lo que hace que las personas los prefieran a Safari y otros navegadores. (¿Adivina cuál es más probable?)
Jason Salaz
1
Tropecé con esto: code.google.com/p/chromium/issues/detail?id=90177
Jason Salaz
@JasonSalaz buena captura con ese informe de error. Esa es la pieza final. Escribiendo la respuesta!
Ian C.
0

Vaya a la barra de menú de Chrome, haga clic en "Más herramientas" → "Codificación" y elija un nuevo formato de codificación. Estoy usando "Unicode UTF-8", parece funcionar para mí.

Blake Edmunds
fuente
-1

https://code.google.com/p/chromium/issues/detail?id=62435 se marcó como arreglado recientemente; a partir de la versión 41, los emoji deberían mostrarse bien en Chrome.

thakis
fuente
1
Si bien es útil, esta no es realmente una respuesta. No explica por qué estaba sucediendo. Es mejor dejarlo como un comentario de la OMI.
Ian C.
Sucedió porque no se implementó el soporte para emojis. Entonces la pregunta no tendrá sentido una vez que m41 esté estable.
thakis
-9

El símbolo es un personaje hecho por Apple. Safari usa su propio conjunto de caracteres.

Josh
fuente
55
En realidad, "pile of poo" es un personaje estándar internacional en Unicode, símbolo 1F4A9 y ni siquiera específico de Apple, y mucho menos algo especial para Safari. Vea la entrada de Wikipedia sobre Emoji y este PDF para más detalles.
bmike
2
Si bien el personaje no es exclusivo de Apple, los colores sí lo son. No conozco ninguna otra fuente de color hasta ahora y creo que Apple creó su propio estándar para hacerlo (una tabla sbix patentada). Varias aplicaciones no reconocerán esta fuente, pero se mostrarán a partir de la fuente normal en blanco y negro Symbola.
Tom Gewecke
1
PD: Debido a que realmente hay algo "Apple único" en esta fuente, creo que esta respuesta no está tan lejos como podría sugerir la calificación negativa.
Tom Gewecke
@TomGewecke, "Safari usa su propio juego de caracteres" es simplemente falso. Así que creo que las calificaciones negativas son merecidas.
jbg