當我使用Safari而不是在運行Lion的同一台MacBook上使用Chrome時,為什麼會出現類似emoji的表情符號?兩種瀏覽器都使用WebKit,我想字體支持來自操作系統,而不是應用程序。
出於參考目的,這是在Chrome 17.0.963.56中呈現的頁面:
這是Safari 5.1.3(7534.53.10)中呈現的頁面:
當我使用Safari而不是在運行Lion的同一台MacBook上使用Chrome時,為什麼會出現類似emoji的表情符號?兩種瀏覽器都使用WebKit,我想字體支持來自操作系統,而不是應用程序。
出於參考目的,這是在Chrome 17.0.963.56中呈現的頁面:
這是Safari 5.1.3(7534.53.10)中呈現的頁面:
區別在於瀏覽器窗口的呈現引擎。
我們知道Safari呈現的字符集與Chrome有所不同。但是Window UI元素(Chrome中的選項卡)可以。這是我們最大的線索。
窗口UI元素很可能全部由OS呈現(強調可能,在這裡我可能是不正確的)。因此,他們可以獲得完整的OS級表情符號擴展處理。
但是,Web瀏覽器窗口內部發生的一切都完全取決於瀏覽器。呈現引擎是每個瀏覽器秘訣的重要組成部分。
Safari和Chrome都使用WebKit,但是它們使用的WebKit實例之間的相似之處在引擎名稱的周圍不再存在。它們都是主版本的分支,並且都經過大量定制,以提高每個瀏覽器開發團隊認為對最終用戶有意義的方式的性能。
@JasonSalaz發現了Chrome錯誤數據庫為我們提供了最終的線索,可以歸結為WebKit分支: http://code.google.com/p/chromium/issues/detail?id=90177-該錯誤正在討論關於Chrome中的fork與開源項目中的WebKit主線之間的區別。 Chrome瀏覽器正在使用的版本尚未在主線中提供渲染差異。
更新:Paul Irish在一篇很棒的博客文章中介紹了WebKit對於當前使用它的所有這些瀏覽器的不同之處 。如果您真的想了解WebKit環境的多樣性,那麼這是一本好書。
您可以使用Chrome擴展程序 Chromoji。一種解決方法是將emoji表情替換為網頁中的嵌入式圖片。
問題是您的瀏覽器使用的字符編碼與您正在查看的文檔的字符編碼不同。
那麼瀏覽器如何知道要使用哪種字符編碼?
Content-Type
標頭在HTTP中指定它。 meta
元素為HTML文檔指定。 charset HTML>指定特定的HTML元素
如果未指定這些屬性,則不同的瀏覽器將使用不同的技術來猜測正確的字符編碼。有些使用啟發式。有些允許用戶指定字符編碼。有些人選擇了操作系統的默認字符編碼。
如果所有這些都沒有成功,那麼您會發現亂碼,也稱為mojibake。
因此直接回答您的問題:Safari和Chrome正在嘗試不同的方法來找到正確的字符編碼。
轉到Chrome菜單欄,單擊“更多工具”→“編碼”,然後選擇一種新的編碼格式。我正在使用“ Unicode UTF-8”,它似乎對我有用。
https://code.google.com/p/chromium/issues/detail?id=62435最近被標記為固定;從41版開始,表情符號應在Chrome中正常顯示。
該符號是Apple製造的字符。 Safari使用自己的字符集。