Unicode 图标字体导致IE8中的兼容模式

Unicode 图标字体导致IE8中的兼容模式,unicode,fonts,internet-explorer-8,font-awesome,glyphicons,Unicode,Fonts,Internet Explorer 8,Font Awesome,Glyphicons,我遇到了一个问题,图标字体导致IE8进入兼容模式。相应地,如果IE8被迫进入边缘模式(例如通过),IE将崩溃 具体来说,我有一个自定义图标字体,我正在使用,它当前映射到的unicode。字体从\f000开始,直到\f360左右 我发现有几篇文章指出,分配给unicode专用区域是个问题: 我试图解决的问题: 将范围重新映射到\e000-\e360 (图标使用\exxx范围) 将范围重新映射到\0000-\0360 (包括拉丁语、语言文字和其他欧洲文字) 但这两种解决方案都不起

我遇到了一个问题,图标字体导致IE8进入兼容模式。相应地,如果IE8被迫进入边缘模式(例如通过
),IE将崩溃

具体来说,我有一个自定义图标字体,我正在使用,它当前映射到的unicode。字体从
\f000
开始,直到
\f360
左右

我发现有几篇文章指出,分配给unicode专用区域是个问题:

我试图解决的问题:

  • 将范围重新映射到
    \e000
    -
    \e360
    • (图标使用
      \exxx
      范围)
  • 将范围重新映射到
    \0000
    -
    \0360
    • (包括拉丁语、语言文字和其他欧洲文字)
但这两种解决方案都不起作用,IE8继续崩溃和/或进入兼容模式。我还没有尝试将字体严格限制在基本的拉丁语范围内,因为我有太多的字形无法适应127个可用点

我还能够让FontAwesome和Glyphicons崩溃IE8,而且这似乎比我的字体发生的频率要低。在大多数情况下,初始页面加载会起作用,然后点击刷新会导致问题

有人对我能做什么有其他想法吗


附言:我并不关心IE8CSS@font-face的其他问题,比如这里讨论的那些问题。我已经应用了那里的技术来解决这些问题。

长话短说,有两种方法可以解决这个问题:

  • 分配给
    基本拉丁语范围
    U+0020到U+007F
  • 分配到
    低代理项范围
    U+DC00到U+DFFF
我通过使用
grunt-webfont
build过程对自定义图标字体的各种范围进行单元测试发现了这一点。 我并没有详尽地测试每一个范围,但我发现这两个是可行的,而且足够了

注:基本拉丁语范围从
U+0020
开始,而不是
U+0000

低代理项范围
有更大的地址空间,因此如果您有很多glyph,则更适合使用。如果glyph无法加载,它还具有呈现方形框的优势,而不是像
基本拉丁区域那样呈现各种拉丁字符。

您能提供一个最小的可测试示例吗?我将尝试创建一个,但同时,如果您访问IE8并刷新,同样的问题也会发生。这是非常具体的旧版本,最重要的是与您的问题无关。但仍然:也许一些奇怪的映射也发生在你身上。。。