Warum erscheint ein Emoji wie 💩, wenn ich Safari verwende, aber nicht Chrome?


30

Warum erscheint ein Emoji wie 💩, wenn ich Safari verwende, Chrome jedoch nicht auf demselben MacBook, auf dem Lion ausgeführt wird? Beide Browser verwenden WebKit, und ich kann mir vorstellen, dass die Unterstützung von Schriftarten vom Betriebssystem und nicht von der Anwendung ausgeht.

Zu Referenzzwecken ist dies die in Chrome 17.0.963.56 gerenderte Seite:

Chrome 17.0.963.56

Und dies ist die Seite, die in Safari 5.1.3 (7534.53.10) gerendert wurde:

Safari 5.1.3 (7534.53.10)


9
Ich sehe dies in Chrome und ich habe nicht die 💩 in der Frage oder einen Titel sehen, aber ich tun sehe es in dem Registerkarte Titel oben auf das Fenster.
CajunLuke

Ich schwebe selten über Registerkarten, um den vollständigen Seitentitel zu sehen, aber Sie haben Recht, das tut es in der Tat. Das ist sehr überraschend.
Jason Salaz

Es kann sein, dass Chrome-Plug-Ins eine eigene Zeichenpalette haben, die eine Hybridversion zwischen der nativen und einer proprietären Version sein kann. Und sie müssen es nur für OS X aktualisieren. Aber ich weiß, dass Emoji nicht nur eine Frage des Schrifttyps ist (Sie können Emoji beispielsweise nicht nach SL portieren, indem Sie einfach die entsprechende Schriftart installieren). Sie können also nicht nur einen neuen Schrifttyp lesen. Ich würde einen Fehler bei Google melden. Oder fordern Sie vollen Support an.

14
Da Besucher mit Chrome Schwierigkeiten haben, den Titel zu lesen, stimme ich zu, den Titel in "Wie kann ich in Google Chrome Scheiße produzieren?" Zu ändern.
Gerry

@cksum Ich habe den Titel zurückgesetzt, da er zu einer relevanten Information in der Frage geworden ist.
Jason Salaz

Antworten:


27

Der Unterschied besteht in den Rendering-Engines für die Browserfenster.

Wir wissen, dass Safari den Zeichensatz anders darstellt als Chrome. Aber die Elemente der Fenster-Benutzeroberfläche (die Registerkarten in Chrome) sind in Ordnung. Das ist unser größter Hinweis.

Die Elemente der Fenster-Benutzeroberfläche werden wahrscheinlich alle vom Betriebssystem gerendert. So erhalten sie die volle Emoji-Expansionsbehandlung auf Betriebssystemebene.

Aber was in einem Webbrowser-Fenster passiert, hängt stark vom Browser ab. Die Rendering-Engines sind ein großer Teil der geheimen Sauce jedes Browsers.

Sowohl Safari als auch Chrome verwenden WebKit. Die Ähnlichkeiten zwischen den von ihnen verwendeten WebKit-Instanzen hören jedoch irgendwo um den Namen der Engine auf. Sie stammen beide aus der Hauptversion und wurden stark angepasst, um die Leistung auf eine Weise zu verbessern, die jedes Browser-Entwicklungsteam für seine Endbenutzer für sinnvoll hält.

@JasonSalaz hat einen großen Fehler in der Chrome-Fehlerdatenbank gefunden, der uns den letzten Hinweis darauf gibt, dass es sich um WebKit- Fehler handelt : http://code.google.com/p/chromium/issues/detail?id=90177 - dieser Fehler ist Ich spreche über die Unterschiede zwischen der Gabel in Chrome und der Hauptlinie von WebKit aus dem Open-Source-Projekt. Es gibt Rendering-Unterschiede in der Hauptlinie, die es noch nicht in die von Chrome verwendete Version geschafft haben. Und es sieht so aus, als ob sie beabsichtigen, die Änderungen in irgendwann zusammenzuführen.

Update: Paul Irish hat einen großartigen Blog-Beitrag darüber, wie sich WebKit von all diesen Browsern unterscheidet, die es derzeit verwenden . Wenn Sie wirklich verstehen möchten, wie vielfältig die WebKit-Umgebung ist, ist dies eine gute Lektüre.


Argh. Hätte ein paar Screenshots machen sollen. Na ja ...
Ian C.

Der Emoji-Support für Chromium-Bug-Ticket-Tracking lautet wie folgt : crbug.com/62435 Der, mit dem Sie verknüpft sind, ist ein Duplikat.
Mathias Bynens

Für den Rekord: Es ist immer noch in Chrome 20.0.1132.57 gebrochen.

Oh toll, laut Kommentar 17 im Fehlerbericht wurde dieses Problem geschlossen. Wenn sich jemand erneut beschweren möchte, müssen Sie einen neuen Fehlerbericht einreichen.
Gentmatt

1
Es funktioniert jetzt ab Chrome 41! 🚀🚀🚀🚀🚀🚀🚀
Yincrash

12

Sie können die Chrome-Erweiterung Chromoji verwenden . Es ist eine Problemumgehung, die Emoji durch eingebettete Bilder in Webseiten ersetzt.


2
Totally Works, zumindest für Twitter, lösche die Antwort nicht.
MarcusJ

2

Das Problem ist, dass Ihr Browser eine andere Zeichenkodierung als das angezeigte Dokument verwendet.

Woher weiß der Browser, welche Zeichenkodierung verwendet werden soll?

  1. Sie kann über den Content-TypeHeader in HTTP angegeben werden .
  2. Über das metaElement kann es für das HTML-Dokument festgelegt werden .
  3. Sie kann mit dem charsetAttribut für ein bestimmtes HTML-Element angegeben werden .

Wenn keines davon angegeben ist, verwenden verschiedene Browser verschiedene Techniken, um die richtige Zeichenkodierung zu erraten. Einige verwenden Heuristiken. Einige erlauben es dem Benutzer, eine Zeichenkodierung anzugeben. Einige wählen die Standardzeichenkodierung des Betriebssystems.

Wenn keines dieser Elemente herausfällt, erhalten Sie den Kauderwelsch, auch Mojibake genannt.

Um Ihre Frage direkt zu beantworten: Safari und Chrome versuchen verschiedene Dinge, um die richtige Zeichenkodierung zu finden.


3
Ansicht -> Textkodierung in Safari lautet "Standard". Ansicht -> Codierung in Chrome sagt "UTF-8". Safari-Einstellungen sagen, dass die Standardkodierung Western (ISO Latin 1) ist. Wenn ich die Codierung in Chrome in Western (ISO-8859-1), Western (Windows-1252) oder Western (Macintosh) ändere, sehe ich immer noch nicht das richtige Emoji, aber ich sehe Kauderwelsch anstelle von Leerzeichen. Ich denke nicht, dass es so einfach ist wie die Zeichenkodierung. Ich vermute, dass es Unterschiede gibt. (Fortsetzung ...)
Ian C.

1
(Fortsetzung von oben) Dies würde die Titelleiste berücksichtigen, in der das Emoji angezeigt wird (Text wird wahrscheinlich von der OS X-Rendering-Engine als grafisches Element in einem Fenster gerendert), und der Hauptteil der Seite wird von der Chrome-eigenen Rendering-Engine gerendert.
Ian C.

1
@ IanC. Das ist wahrscheinlich eine Antwort wert, wenn Sie es nur ein bisschen weiter ausbauen . Chrome verwendet WebKit, ansonsten jedoch keine der Klassen von ObjC / Cocoa, die Emoji nativ unterstützen. Immerhin ist Chrome die Nr. 1 unter den Funktionen, die ausnahmslos nur mit einer benutzerdefinierten Lösung zu erreichen sind. Daher müsste Chrome entweder ausdrücklich Unterstützung für Emoji schreiben oder aufhören, das zu tun, was die Leute gegenüber Safari und anderen Browsern bevorzugen. (Vermutung welche ist wahrscheinlicher?)
Jason Salaz


@JasonSalaz schöner Fang mit diesem Fehlerbericht. Das ist das letzte Stück. Antwort aufschreiben!
Ian C.

0

Gehen Sie zur Chrome-Menüleiste, klicken Sie auf "Weitere Tools" → "Codierung" und wählen Sie ein neues Codierungsformat. Ich verwende "Unicode UTF-8", es scheint für mich zu funktionieren.


-1

https://code.google.com/p/chromium/issues/detail?id=62435 wurde kürzlich als behoben markiert. Ab Version 41 sollte Emoji in Chrome einwandfrei angezeigt werden.


1
Dies ist zwar nützlich, aber keine wirkliche Antwort. Es erklärt nicht, warum es geschah. Dies ist besser als Kommentar IMO gelassen.
Ian C.

Es geschah, weil die Unterstützung für Emojis nicht implementiert wurde. Die Frage ergibt also keinen Sinn, wenn m41 erst einmal stabil ist.
thakis

-9

Das Symbol ist ein Zeichen von Apple. Safari verwendet einen eigenen Zeichensatz.


5
Tatsächlich ist "Haufen Poo" ein internationales Standardzeichen in Unicode - Symbol 1F4A9 und nicht einmal Apple - spezifisch, geschweige denn etwas Besonderes für Safari. Weitere Informationen finden Sie im Wikipedia-Eintrag zu Emoji und in diesem PDF .
bmike

2
Obwohl das Zeichen nicht nur für Apple gilt, sind es die Farben. Ich kenne bisher keine andere Farbschrift und ich denke, Apple hat einen eigenen Standard dafür entwickelt (eine proprietäre sbix-Tabelle). Verschiedene Apps erkennen diese Schriftart nicht, zeigen sie jedoch in der normalen schwarz / weißen Schriftart Symbola an.
Tom Gewecke

1
PS Da diese Schriftart in der Tat etwas "Einzigartiges von Apple" enthält, ist diese Antwort meiner Meinung nach nicht so weit entfernt, wie die Minus-Bewertung vermuten lässt.
Tom Gewecke

@TomGewecke naja, "Safari benutzt einen eigenen Zeichensatz" ist einfach falsch. Ich denke also, dass die Minus-Bewertungen verdient sind.
JBG
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.