UTF-8特殊字符不显示

时间:2012-10-23 14:30:46

标签: unicode character-encoding

我正在试图弄清楚为什么这样的人物:?显示为空盒子。它们是unicode字符,charset是utf-8。

这可能是一个没有字形的字体问题吗?任何想法?
详细信息:Html页面,我使用的是firefox 16.0.1,Windows 7 ..就像这篇帖子一样,我也看不到这个字形
感谢

3 个答案:

答案 0 :(得分:7)

你在那里的角色是Unicode Character 'WHITE RIGHT POINTING BACKHAND INDEX' (U+1F449)。在该页面上,您可以找到支持链接Fonts that support U+1F449背后字符的已知字体列表。

  

<强>字体
  LastResort
  Segoe UI Emoji
  Segoe UI Symbol
  Symbola

这些字体都没有在stackoverflow.com上使用过,所以你也会看到一个空框。

如果这种情况发生在您自己的网站上,并且您想修复它,那么您需要通过CSS @font-face提供支持字体以及webapp,或者在这种特殊情况下可能更好,寻找基于CSS的图标库,例如Font Awesome<i class="fa fa-hand-o-right">非常接近这个角色。

答案 1 :(得分:4)

字符U + 1F449在2010年的版本6中被添加到Unicode中,从字体到字体的采用通常需要大约十年才能在字体中得到广泛支持。

现在包含它的几种字体包括Symbola和Segoe UI Symbol。如果您安装了其中任何一个,您可能会看到它;否则没有。 Segoe UI Symbol随Windows 8一起发布,并且显然与Windows 7(至少某些变体)一样,但Windows 7版本可能有限 - 可以从Microsoft获得updateSymbola是一种免费字体,因此您原则上可以将其用作可下载字体(通过@font-face),但其文件大小相当大。

如果为元素指定的字体不包含内容中某些字符的字形,则Web浏览器应使用后备字体。 Firefox通常会实现这一点,IE不会,特别是在旧版本中,所以如果你在网页上使用这个字符,最好包装一个自己的元素(通常span用于此目的)并在CSS中设置以下内容:

font-family: Segoe UI Symbol, Symbola;

但是这样(没有@font-face)只适用于使用包含其中一种字体的计算机的人。

答案 2 :(得分:1)

缺少字体字符通常会被其他字体替换,UTF-8应该能够显示所有unicode字符。我怀疑您的文件编码(编辑器如何保存)与HTML页面的元标记中的声明不匹配。

您可以使用此W3-checker检查您的网页,它可能会为您提供有关网页问题的提示。

编辑:

你是对的,这不是编码问题,字符的数量如此之高,以至于“普通”字体不支持它。也许您可以使用其中一个☛☞,否则您将不得不使用Web字体,并且具有完全unicode支持的字体可能非常大。