Perché vengono visualizzate emoji come 💩 quando utilizzo Safari, ma non Chrome?


30

Perché emoji come 💩 appaiono quando uso Safari, ma non Chrome sullo stesso MacBook con Lion? Entrambi i browser utilizzano WebKit e immagino che il supporto dei caratteri provenga dal sistema operativo, non dall'applicazione.

A scopo di riferimento questa è la pagina visualizzata in Chrome 17.0.963.56:

Chrome 17.0.963.56

E questa è la pagina renderizzata in Safari 5.1.3 (7534.53.10):

Safari 5.1.3 (7534.53.10)


9
Sto vedendo questo in Chrome e non vedo l'💩 nella domanda o titolo, ma farlo vedere nel titolo della scheda in cima alla finestra.
CajunLuke,

Raramente ho il puntatore del mouse sulle schede per vedere il titolo della pagina intera, ma hai ragione, lo fa davvero. È molto sorprendente.
Jason Salaz,

Potrebbe essere che i plug-in di Chrome nella propria palette di caratteri, che potrebbe essere una versione ibrida tra quella nativa e una proprietaria. E devono solo aggiornarlo per OS X. Ma so che le emoji non sono solo una questione di tipo di carattere (ad esempio non è possibile trasferire le emoji su SL semplicemente installando il rispettivo carattere). Quindi c'è di più per loro oltre a leggere un nuovo tipo di carattere. Segnalerei un bug con Google. O richiedi pieno supporto.

14
Dato che i visitatori con Chrome avranno difficoltà a leggere il titolo, voto per cambiarlo in "Come posso produrre turds su Google Chrome?"
Gerry,

@cksum Ho ripristinato il titolo perché è diventato un'informazione pertinente nella domanda.
Jason Salaz,

Risposte:


27

La differenza sono i motori di rendering per le finestre del browser.

Sappiamo che Safari rende il set di caratteri in modo diverso rispetto a Chrome. Ma gli elementi dell'interfaccia utente di Windows (le schede in Chrome) sono a posto. Questo è il nostro più grande indizio.

Gli elementi dell'interfaccia utente della finestra sono probabili (enfasi su probabilmente, potrei non essere corretto qui) tutti resi dal sistema operativo. Quindi ottengono il trattamento completo di espansione delle emoji a livello di sistema operativo.

Ma ciò che accade all'interno di una finestra del browser Web dipende molto dal browser. I motori di rendering sono una parte importante della salsa segreta di ciascun browser.

Sia Safari che Chrome utilizzano WebKit, ma le somiglianze tra le istanze WebKit che usano si fermano da qualche parte attorno al nome del motore. Sono entrambi fork della versione principale e sono entrambi fortemente personalizzati per migliorare le prestazioni in modo che ciascun team di sviluppo del browser ritiene significativo per i propri utenti finali.

@JasonSalaz ha trovato un ottimo bug nel database dei bug di Chrome che ci dà l'ultimo indizio che dipende dalle forcelle WebKit: http://code.google.com/p/chromium/issues/detail?id=90177 - quel bug è parlando delle differenze tra il fork in Chrome e la linea principale di WebKit dal progetto open source. Ci sono differenze di rendering nella linea principale che devono ancora arrivare alla versione che Chrome sta usando. E sembra che abbiano intenzione di unire i cambiamenti ad un certo punto.

Aggiornamento: Paul Irish ha un ottimo post sul blog su come WebKit differisce per tutti questi browser che attualmente lo utilizzano . Se vuoi davvero capire quanto sia diverso l'ambiente WebKit, questa è un'ottima lettura.


Argh. Avrei dovuto prendere alcune schermate. Oh bene ...
Ian C.

Il supporto Emoji per il monitoraggio dei ticket dei bug di Chromium è questo: crbug.com/62435 Quello a cui sei collegato è un duplicato.
Mathias Bynens,

Per la cronaca: è ancora rotto in Chrome 20.0.1132.57.

Oh fantastico, secondo il commento 17 nella segnalazione di bug questo problema è stato chiuso. Se qualcuno vuole lamentarsi di nuovo, è necessario presentare una nuova segnalazione di bug.
gentmatt,

1
Funziona ora a partire da Chrome 41! 🚀🚀🚀🚀🚀🚀🚀
yincrash,

12

Puoi utilizzare l'estensione Chrome Chromoji . È una soluzione alternativa che sostituirà le emoji con immagini incorporate nelle pagine Web.


2
Funziona totalmente, almeno per Twitter, non cancellare la risposta.
MarcusJ,

2

Il problema è che il tuo browser utilizza una codifica di caratteri diversa da quella del documento che stai visualizzando.

Quindi, come fa il browser a sapere quale codifica dei caratteri utilizzare?

  1. Può essere specificato in HTTP usando l' Content-Typeintestazione.
  2. Può essere specificato per il documento HTML usando l' metaelemento.
  3. Può essere specificato per un elemento HTML specifico usando l' charsetattributo.

Se non viene specificato nessuno di questi, browser diversi utilizzano tecniche diverse per indovinare la codifica dei caratteri corretta. Alcuni usano l'euristica. Alcuni consentono all'utente di specificare una codifica dei caratteri. Alcuni selezionano la codifica dei caratteri predefinita del sistema operativo.

Se nessuna di queste pentole si spegne, si ottiene il gibberish, noto anche come mojibake.

Quindi, per rispondere direttamente alla tua domanda: Safari e Chrome stanno provando diverse cose per trovare la giusta codifica dei caratteri.


3
Visualizza -> La codifica del testo in Safari dice "Predefinito". Visualizza -> La codifica in Chrome dice "UTF-8". Le preferenze di Safari dicono che la codifica predefinita è Western (ISO Latin 1). Se cambio la codifica in Chrome in Western (ISO-8859-1), Western (Windows-1252) o Western (Macintosh) non vedo ancora l'emoji corretta, ma vedo incomprensibile invece di spazio vuoto. Non penso sia semplice come la codifica dei caratteri. Sospetto che ci siano differenze di rendering. (continua ...)
Ian C.

1
(continua dall'alto) Ciò spiegherebbe la barra del titolo che mostra le emoji (è probabile che il testo sia reso dal motore di rendering di OS X in quanto è un elemento grafico su una finestra) e che il corpo della pagina sia reso dal proprio motore di rendering di Chrome.
Ian C.

1
@IanC. è probabilmente una risposta degna se ci si espande ancora un po 'di più. Chrome utilizza WebKit, ma non una delle classi ObjC / Cocoa che supportano nativamente le emoji. Dopo tutto, questa è la funzione numero 1 di Chrome, velocissima che si ottiene invariabilmente solo con una soluzione personalizzata. Quindi, Chrome dovrebbe scrivere esplicitamente il supporto per le emoji o smettere di fare ciò che fa sì che le persone le preferiscano a Safari e ad altri browser. (Indovina quale è più probabile?)
Jason Salaz,


@JasonSalaz bella cattura con quella segnalazione di bug. Questo è l'ultimo pezzo. Scrivi la risposta!
Ian C.

0

Vai alla barra dei menu di Chrome, fai clic su "Altri strumenti" → "Codifica" e scegli un nuovo formato di codifica. Sto usando "Unicode UTF-8", sembra funzionare per me.


-1

https://code.google.com/p/chromium/issues/detail?id=62435 è stato contrassegnato come riparato di recente; a partire dalla versione 41, le emoji dovrebbero essere visualizzate correttamente in Chrome.


1
Sebbene utile, questa non è davvero una risposta. Non spiega perché stesse accadendo. È meglio lasciarlo come un commento IMO.
Ian C.

È successo perché il supporto per gli emoji non è stato implementato. Quindi la domanda non avrà senso quando m41 sarà stabile.
Thakis,

-9

Il simbolo è un personaggio creato da Apple. Safari utilizza il proprio set di caratteri.


5
In realtà "pila di cacca" è un personaggio standard internazionale in Unicode - simbolo 1F4A9 e nemmeno specifico di Apple per non parlare di qualcosa di speciale per Safari. Vedi la voce di Wikipedia su Emoji e questo PDF per i dettagli.
bmike

2
Mentre il personaggio non è unico per Apple, i colori lo sono. Non conosco nessun altro carattere di colore esistente finora e penso che Apple abbia creato il proprio standard per farlo (una tabella sbix proprietaria). Varie app non riconosceranno questo tipo di carattere, ma verranno visualizzati dal normale carattere Symbola in bianco e nero.
Tom Gewecke,

1
PS Poiché in questo font c'è davvero qualcosa di "unico nel suo genere", penso che questa risposta non sia lontana da quanto potrebbe suggerire la valutazione negativa.
Tom Gewecke,

@TomGewecke bene, "Safari usa il proprio set di caratteri" è semplicemente falso. Quindi penso che i voti negativi siano meritati.
jbg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.