30 votos

Por qué aparecen emoji como

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

Como referencia, esta es la página renderizada en Chrome 17.0.963.56:

Chrome 17.0.963.56

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

Safari 5.1.3 (7534.53.10)

9 votos

Estoy viendo esto en Chrome y no veo el en la pregunta o el título, pero hacer verlo en el título de la pestaña en la parte superior de la ventana.

0 votos

Casi nunca paso el ratón por encima de las pestañas para ver el título completo de la página, pero tienes razón, en efecto, para eso. Es muy sorprendente.

0 votos

Puede ser que Chrome se enchufe a su propia paleta de caracteres, que podría ser alguna versión híbrida entre la nativa y una propietaria. Pero sé que los emoji no son sólo una cuestión de tipo de letra (no puedes portar los emoji a SL, por ejemplo, simplemente instalando la fuente respectiva). Así que hay algo más que leer un nuevo tipo de letra. Yo presentaría un error a Google. O pediría soporte completo.

27voto

shsteimer Puntos 8749

La diferencia estriba en los motores de renderizado del navegador Windows.

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

Los elementos de la interfaz de usuario de la ventana son probablemente (énfasis en probablemente, puedo no estar en lo cierto aquí) todos los que están siendo representados por el sistema operativo. Así que reciben el tratamiento completo de expansión de emoji a nivel del SO.

Pero lo que ocurre 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 utilizan WebKit, pero las similitudes entre las instancias de WebKit que utilizan se detienen en el nombre del motor. Ambos son bifurcaciones de la versión principal y están fuertemente personalizados para mejorar el rendimiento de la manera que cada equipo de desarrollo del navegador cree que es significativa 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 se debe a los forks de WebKit: http://code.google.com/p/chromium/issues/detail?id=90177 -- ese error se refiere a las diferencias entre el fork de Chrome y la línea principal de WebKit del proyecto de código abierto. Hay diferencias de renderizado en la línea principal que aún no han llegado a la versión que utiliza Chrome. Y parece que tienen la intención de fusionar los cambios en algún momento.

Actualización: Paul Irish ha una gran entrada en el blog sobre las diferencias de WebKit para todos estos navegadores que lo utilizan actualmente . Si realmente quieres entender lo diverso que es el entorno de WebKit, esta es una gran lectura.

0 votos

Argh. Debería haber hecho algunas capturas de pantalla. Oh, bueno...

0 votos

El ticket de error de Chromium para el soporte de Emoji es este: crbug.com/62435 El que has enlazado es un duplicado.

0 votos

Para que conste: Todavía está roto en Chrome 20.0.1132.57.

12voto

Steffi Puntos 221

Puedes utilizar la extensión de Chrome Chromoji . Se trata de una solución que sustituye los emoji por imágenes incrustadas en las páginas web.

2 votos

Totalmente funciona, para Twitter al menos, no borres la respuesta.

2voto

james.garriss Puntos 888

El problema es que tu navegador está utilizando una codificación de caracteres diferente a la del documento que estás viendo.

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

  1. Se puede especificar en HTTP utilizando la opción Content-Type cabezazo.
  2. Se puede especificar para el documento HTML utilizando la opción meta elemento.
  3. Se puede especificar para un elemento HTML específico utilizando la función charset atributo.

Si no se especifica ninguna de ellas, los distintos navegadores utilizan diferentes técnicas para adivinar la codificación de caracteres correcta. Algunos utilizan la heurística. Algunos permiten al usuario especificar una codificación de caracteres. Algunos seleccionan la codificación de caracteres por defecto del sistema operativo.

Si nada de esto resulta, se obtiene el galimatías, también conocido como mojibake.

Así que para responder directamente a su pregunta: Safari y Chrome intentan cosas diferentes para encontrar la codificación de caracteres correcta.

3 votos

Ver -> Codificación de texto en Safari dice 'Por defecto'. Ver -> Codificación en Chrome dice 'UTF-8'. Los prefijos de Safari dicen que la codificación por defecto es la occidental (ISO Latin 1). Si cambio la codificación en Chrome a Occidental (ISO-8859-1), Occidental (Windows-1252) o Occidental (Macintosh) sigo sin ver el emoji correcto, pero sí veo un galimatías en lugar de un espacio vacío. No creo que sea tan simple como la codificación de caracteres. Sospecho que hay diferencias de renderizado. (continúa...)

1 votos

(Eso explicaría que la barra de título muestre el emoji (es probable que el texto sea renderizado por el motor de renderizado de OS X, ya que es un elemento gráfico en una ventana) y que el cuerpo de la página sea renderizado por el propio motor de renderizado de Chrome.

1 votos

@IanC. Eso es probablemente digno de respuesta si se amplía en él sólo un bit más. Chrome utiliza WebKit, pero por lo demás no es una de las clases de ObjC/Cocoa que soporta nativamente los emoji. Esa es, después de todo, la característica número 1 de Chrome, la rapidez endiablada, que invariablemente sólo se consigue con una solución personalizada. Así que, Chrome tendría que escribir explícitamente el soporte para emoji, o dejar de hacer lo que hace que la gente los prefiera sobre Safari y otros navegadores. (Adivina cuál es más probable).

-1voto

thakis Puntos 99

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

1 votos

Aunque es útil, esto no es realmente una respuesta. No explica por qué que estaba sucediendo. Esto es mejor dejarlo como un comentario OMI.

0 votos

Sucedió porque no se implementó el soporte para los emojis. Así que la pregunta no tendrá sentido una vez que m41 esté en estable.

-9voto

mburn7 Puntos 108

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

5 votos

En realidad, "montón de caca" es un carácter estándar internacional en Unicode - símbolo 1F4A9 y ni siquiera es específico de Apple y mucho menos algo especial para Safari. Véase el Entrada de Wikipedia sobre Emoji y este PDF para más detalles.

2 votos

Aunque el personaje no es exclusivo de Apple, los colores sí lo son. No conozco ninguna otra fuente de color que exista hasta ahora y creo que Apple creó su propio estándar para hacerlo (una tabla sbix propietaria). Varias aplicaciones no reconocen este tipo de letra, sino que lo muestran a partir de la fuente normal en blanco y negro Symbola.

1 votos

P.D. Dado que, efectivamente, hay algo "único de Apple" en esta fuente, creo que esta respuesta no está tan lejos como podría sugerir la calificación negativa.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X