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:
Und dies ist die Seite, die in Safari 5.1.3 (7534.53.10) gerendert wurde:
lion
safari
google-chrome
emoji
Daniel
quelle
quelle
Antworten:
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.
quelle
Sie können die Chrome-Erweiterung Chromoji verwenden . Es ist eine Problemumgehung, die Emoji durch eingebettete Bilder in Webseiten ersetzt.
quelle
Das Problem ist, dass Ihr Browser eine andere Zeichenkodierung als das angezeigte Dokument verwendet.
Woher weiß der Browser, welche Zeichenkodierung verwendet werden soll?
Content-Type
Header in HTTP angegeben werden .meta
Element kann es für das HTML-Dokument festgelegt werden .charset
Attribut 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.
quelle
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.
quelle
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.
quelle
Das Symbol ist ein Zeichen von Apple. Safari verwendet einen eigenen Zeichensatz.
quelle