@font-face在IE9中缺少字符/字形

3
我在使用@font-face时,在IE9上遇到了一个奇怪的问题。我使用font-squirrel将我们想要的字体类型的TTF转换为WOFF、EOT和SVG格式。

这似乎很顺利,我能够使用Paul Irish的@font-face CSS让Chrome/Safari和Firefox中的字体正常工作。但是在IE9中出现了问题。

在IE9中查看时,使用该字体的文本缺少字符。例如短语:

The quick brown fox jumps over the lazy dog

显示为

 h   uick bro n fox ju p  o  r th  lazy do

我将每种字体都单独设置为一个@font-face声明,以进一步调查。 Chrome(例如)使用 WOFF、TTF 和 SVG 渲染上述短语时表现良好。奇怪的是,IE9 在渲染WOFF和TTF时出现了同样的字符缺失。但它不能载入EOT。
有谁知道原因吗?非常感谢您的帮助。
比较图片显示如上所示。
编辑2011.19.12:感谢大家的回答,我仍然没有找到解决这个问题的方法。恰巧其中一位设计师已经找到了另一种字体,因此这个问题不是很关键,但我仍然想要彻底解决它。

当你检查页面上的渲染源代码时,所有的字母是否都在HTML中而只是没有显示?还是它们没有被很好地呈现到HTML中? - one.beat.consumer
它们都在渲染源中。奇怪的是,当我将该句子复制粘贴到记事本中时,所有字符都在那里。 - Liam Newmarch
6个回答

2
对我来说,IE9渲染格式有问题,但其他浏览器没有这个问题...可能是(a)字体类型的兼容性问题,或者(b)转换时出现的损坏,IE无法处理?我无法重现症状,因此这可能不是真正的答案。
我会使用Squirrel进行新的转换,并使用脚本检测浏览器代理并在必要时加载最兼容IE的字体,然后为Chrome / FF和其他Webkit浏览器加载漂亮的字体。
如果这有帮助,请告诉我。

谢谢你的回答,我已经尝试过重新转换字体但没有成功。在我解决这个问题之前,我将使用'<!--[if IE]><[endif]-->'条件标签来为IE显示一个简单的草书字体。 - Liam Newmarch
我接受此答案并授予赏金。最终我使用了另一种字体,只能假设问题是字体损坏,仅影响IE。我仍然不能确定,但这是最好的解释。 - Liam Newmarch
谢谢Liam。很抱歉我们无法为您找到更好的答案。我会将其添加到IE怪癖列表中。不过很高兴您能找到一个合适的解决方法。 - one.beat.consumer
1
@one.beat.consumer - 文件损坏是一个很好的猜测,这在我的情况下起作用了。+1。 - kamituel

1

尝试使用<!--[if IE9]><[endif]-->条件标签来显示在IE中有效的字体。

我建议联系微软公司解决此问题,他们可能会提供修复或在Windows更新中推出一些热补丁。


看到 one.beat.consumer 的回答了,我已经在做这个了。不过还是谢谢你的回答。 - Liam Newmarch
@liam 对不起,我没看到。 - Anish Gupta

1
我曾经遇到过这个问题——通过fontsquirrel.com创建的两个Web字体在IE9中缺少字母,但在其他浏览器中没有问题。似乎v9是唯一一个使用.woff文件的IE版本,尽管其他浏览器可以正常使用我的字体,但IE不能。奇怪的是,我通过使用命令行工具sfnt2woff解决了这个问题,该工具将.oft和.ttf文件转换为.woff文件。我保留了fontsquirrel生成的所有其他Web字体文件,但用sfnt2woff中的.woff文件替换了两个有问题的字体中的.woff文件,在IE9中一切都正常工作了。

这个工具的使用文档在哪里可以找到?我解压了文件,但不知道该打开哪个文件。 - user1380540

0

非常有用的发现,但似乎只适用于Firefox。尽管如此,我还是试了一下,但在IE9中仍然缺少字符。 - Liam Newmarch

0

我昨天在IE9上使用fonts.com的webfont时遇到了完全相同的问题。我们花了几个小时才发现,我们使用的.eof字体在fonts.com上出现了某些损坏。在我的情况下,我们是通过自主托管字体而不是通过JS来使用它们的。所以请仔细检查字体。希望这可以帮到你。


0
今天在使用来自MyFonts的Cantoni时遇到了这个问题。 它在除IE9以外的所有浏览器中都显示良好。 我在几个地方都使用它作为标题。 在每个标题中,第一个或两个字符会消失。
我做的唯一一件可靠解决这个问题的事情就是在每个缺失字母的标题前添加&nbsp;。 这不是很干净,也不太确定为什么它有效,但对我而言确实有效。 不幸的是,这需要我使用负文本缩进将标题向后移动,以使其正确对齐。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接