当我使用Safari而不使用Chrome时,为什么会出现💩等表情符号?


30

为什么当我使用Safari而不是在运行Lion的同一台MacBook上使用Chrome时,会出现类似em的表情符号?两种浏览器都使用WebKit,我想字体支持来自操作系统,而不是应用程序。

仅供参考,以下是在Chrome 17.0.963.56中呈现的页面:

铬17.0.963.56

这是Safari 5.1.3(7534.53.10)中呈现的页面:

Safari 5.1.3(7534.53.10)


9
我正在Chrome浏览器中查看此内容,但在问题或标题中看不到💩,但在窗口顶部的标签标题中确实看到了它。
CajunLuke 2012年

我很少将鼠标悬停在选项卡上以查看完整的页面标题,但是您是对的,的确如此。这真是令人惊讶。
杰森·萨拉兹

Chrome可能会将插件插入其自己的字符调色板,这可能是本机和专有版本之间的某种混合版本。他们只需要为OS X更新它即可。但是我知道表情符号不仅仅是字体类型的问题(例如,仅通过安装相应的字体就不能将表情符号移植到SL)。因此,除了阅读新的字体类型外,他们还有更多的东西。我会向Google提交错误。或要求全力支持。

14
由于使用Chrome浏览器的访问者很难阅读标题,因此我投票将标题更改为“如何在Google Chrome上产生粪便?”
格里

@cksum我还原了标题,因为它已成为问题中的相关信息。
杰森·萨拉兹

Answers:


27

不同之处在于浏览器窗口的渲染引擎。

我们知道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环境的多样性,那么这是一本好书。


啊 应该已经抓了一些屏幕截图。噢...
Ian C.

跟踪Emoji表情的Chromium错误票证就是这样的:crbug.com/62435您链接到的副本是重复的。
Mathias Bynens'4

记录:Chrome 20.0.1132.57仍未解决。

很好,根据错误报告中的注释17,此问题已解决。如果有人想再次投诉,则需要提交新的错误报告。
gentmatt 2012年

1
从Chrome 41开始就可以使用!🚀🚀🚀🚀🚀🚀🚀
yincrash

12

您可以使用Chrome扩展程序Chromoji。这是一种解决方法,可以用网页中的嵌入式图像替换表情符号。


2
完全有效,对于Twitter至少,请不要删除答案。
MarcusJ 2013年

2

问题是您的浏览器使用的字符编码与您正在查看的文档的字符编码不同。

那么浏览器如何知道要使用哪种字符编码?

  1. 可以使用Content-Type头在HTTP中指定。
  2. 可以使用meta元素为HTML文档指定它。
  3. 可以使用charset属性为特定的HTML元素指定它。

如果未指定这些字符,则不同的浏览器将使用不同的技术来猜测正确的字符编码。有些使用启发式。有些允许用户指定字符编码。有些人选择操作系统的默认字符编码。

如果这些都不成功,您将得到胡言乱语,也称为mojibake。

因此,直接回答您的问题:Safari和Chrome正在尝试不同的方法来找到正确的字符编码。


3
查看-> Safari中的文本编码显示为“默认”。查看-> Chrome中的编码显示为'UTF-8'。Safari偏好使用默认编码为Western(ISO拉丁1)。如果我将Chrome中的编码更改为Western(ISO-8859-1),Western(Windows-1252)或Western(Macintosh),我仍然看不到正确的表情符号,但我确实看到乱码而不是空白。我认为这不像字符编码那么简单。我怀疑存在渲染差异。(续...)
伊恩·C。

1
(从上继续)这将解释显示表情符号的标题栏(文本可能是由OS X的渲染引擎渲染的,因为它是Window上的图形元素),而页面的主体是由Chrome自己的渲染引擎渲染的。
伊恩·C(

1
@IanC。这可能是回答值得,如果你在它扩大只是一个有点多。Chrome使用WebKit,但不是使用ObjC / Cocoa的原生支持表情符号的类之一。毕竟,Chrome的所有#1功能都非常快,这只能通过自定义解决方案来实现。因此,Chrome要么必须明确编写对表情符号的支持,要么停止做使人们喜欢Safari和其他浏览器的事情。(猜猜哪个更有可能?)
杰森·萨拉兹


@JasonSalaz很好地抓住了该错误报告。那是最后一块。写下答案!
伊恩C.

0

转到Chrome菜单栏,单击“更多工具”→“编码”,然后选择一种新的编码格式。我正在使用“ Unicode UTF-8”,它似乎对我有用。



-9

该符号是Apple制造的字符。Safari使用自己的字符集。


5
实际上,“ poo of poo”是Unicode的国际标准字符-符号1F4A9,甚至不是Apple专有的,更不用说Safari的特殊功能了。有关详细信息,请参见Emoji上Wikipedia条目此PDF
bmike

2
虽然角色不是Apple独有的,但颜色却是。到目前为止,我还不知道有其他颜色的字体,我想苹果公司为此制定了自己的标准(专有的sbix表)。各种应用程序都无法识别该字体,但是会以普通的黑色/白色字体Symbola显示。
Tom Gewecke 2012年

1
附注:由于此字体确实存在“ Apple独有”特征,因此我认为此答案与减法评级所建议的差距不大。
Tom Gewecke 2012年

@TomGewecke,“ Safari使用自己的字符集”完全是错误的。因此,我认为负评级是应得的。
jbg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.