Unicode 为什么Firefox会挤压Windows';心,但不是Ubuntu';s

Unicode 为什么Firefox会挤压Windows';心,但不是Ubuntu';s,unicode,fonts,cross-browser,typography,Unicode,Fonts,Cross Browser,Typography,我想展示我的心♥ 此文件中的Unicode字符(U+2665黑心套装) 尽管我已经指定了Droid Sans字体,但不同的浏览器显示相同字符的方式不同。因此,我假设droidsans字体不包括♥ 字符,浏览器必须回退到其他字体才能显示此字符。但浏览器如何确定Unicode字符使用哪种字体;从屏幕截图上可以看出,它不是特定于操作系统的,因为Ubuntu上的Firefox和Chromium显示的不同;而且它不是特定于浏览器的,因为Firefox在Ubuntu和Windows7上的显示方式不同 所以我

我想展示我的心♥ 此文件中的Unicode字符(U+2665黑心套装)

尽管我已经指定了Droid Sans字体,但不同的浏览器显示相同字符的方式不同。因此,我假设
droidsans
字体不包括♥ 字符,浏览器必须回退到其他字体才能显示此字符。但浏览器如何确定Unicode字符使用哪种字体;从屏幕截图上可以看出,它不是特定于操作系统的,因为Ubuntu上的Firefox和Chromium显示的不同;而且它不是特定于浏览器的,因为Firefox在Ubuntu和Windows7上的显示方式不同

所以我的问题是-浏览器如何决定使用哪种字体来显示Unicode字符;如何找出浏览器正在使用哪种字体来显示Unicode字符;如何确保跨浏览器的外观一致?

PS:(特定于Firefox),即使
Droid SAN
不包括♥ 字符,仅当所选字体为Droid Sans时,Firefox才会在屏幕截图中显示该字符。对于任何其他字体,Firefox都会选择
DejaVu Sans
字体来显示♥ 角色(在Ubuntu上,通过点击和试用确认)


Droid Sans字体不包含U+2665黑心西装,因此声明字体在这里并不重要。我无法在你的“PS”中重现观察结果,所以我不想解释它

(检查字体中字符覆盖率的一种快速方法是下载并安装字体。它包含所有字符的通用、易于识别的呈现,因此通过在测试文本上使用
font-family:foo,LastResort
,您将快速找出字体“foo”中是否存在特定字符。)


回退字体的使用取决于浏览器。浏览器可能对此进行了设置。但问题是,作为一名作者,当您指定的字体列表中找不到您的字符时,您无法知道其他人的浏览器上会发生什么情况(如已安装,则在用户的计算机上安装)。

字体映射规则复杂且不可预测,因为它们取决于用户机器上安装的字体。实际形状由字体设计师确定。如果你想保证一个特定的形状,那么你需要使用一个图像而不是一个字符。@HansPassant屏幕截图的保证是它们来自同一台机器,所以安装的字体是相同的。不同操作系统的“同一台机器”不算“相同”。@HansPassant当然。我所说的“同一套已安装字体”是指每个操作系统安装的同一套字体(因此,从技术上讲,在所附的屏幕截图中有两套已安装字体)。但我认为这是可以理解的。:-)我只想知道在我自己的浏览器中发生了什么,我应该完全控制这些浏览器。