EOT

Embedded OpenType——微软专有的网页字体格式,仅用于 Internet Explorer 的旧版兼容支持。

.eot Embedded OpenType
类型压缩二进制(专有格式)
压缩MTX(微软专有)
文件大小与 TTF 相近
支持范围仅 IE(6-11)
最适用于IE 6-8 旧版支持
Bobcorn可选导出

什么是 EOT?

EOT 由微软于 1997 年创建,是史上第一种网页字体格式。它曾被提交至 W3C 申请标准化,但最终未获通过——主要原因是其专有压缩算法(MTX)和内置 DRM 功能遭到其他浏览器厂商的抵制。

该格式包含 URL 绑定机制,限制字体只能在特定域名下加载,同时支持字体子集化——通过剔除未使用的字形来减小文件体积。这些功能在 20 世纪 90 年代末算是前瞻之举,但由于格式的专有性,EOT 始终只在 Internet Explorer 中得到实现。

近十年间——从 IE 4 直到 2000 年代中期——EOT 是在网页上使用自定义字体的唯一方式。直到 2010 年 WOFF 出现,才有了跨浏览器的替代方案。如今,EOT 已成历史遗迹,仅对必须支持 IE 8 或更早版本的极少数项目有用。

工作原理

EOT 文件将 TrueType 字体数据与微软的 MTX 压缩及专有文件头封装在一起。文件头包含 URL 绑定信息(允许加载该字体的域名列表)、授权标志以及字体元数据(如字族名称和样式)。

当 Internet Explorer 在样式表中遇到 EOT 字体时,会读取文件头,验证当前页面的来源 URL 是否与允许域名匹配,只有验证通过才会解压并渲染字体。若 URL 检查失败,字体将被静默拒绝——这是一种基本的防盗链保护机制。

包含 EOT 的经典"防弹"@font-face 语法如下:

含 EOT 的防弹 @font-face
@font-face {
  font-family: 'MyIcons';
  src: url('icons.eot');                    /* IE9 兼容 */
  src: url('icons.eot?#iefix') format('embedded-opentype'),
       url('icons.woff2') format('woff2'),
       url('icons.woff') format('woff'),
       url('icons.ttf') format('truetype');
}

?#iefix 查询字符串是一个绕过 IE 9 解析器漏洞的技巧。IE 9 无法正确处理单个声明中的多条 src——它会尝试将整个字符串(包括 format() 提示)作为单个 URL 加载,从而导致失败。在 EOT URL 后添加 ?#iefix,可以让 IE 9 将其识别为有效的独立 URL,在解析器卡壳之前终止路径。现代浏览器会完全忽略该查询字符串。

优缺点

    优点
  • IE 6-8 唯一支持的字体格式
  • MTX 压缩带来较小的文件体积
  • URL 绑定提供基本的防盗链保护
    缺点
  • 微软专有格式,从未被 W3C 标准化
  • 仅在 Internet Explorer 中有效
  • 复杂的 DRM/URL 绑定可能导致部署问题
  • 所有现代浏览器均不支持
  • 已废弃的技术,不再有任何发展

何时使用 EOT

仅当你必须支持 IE 8 或更早版本时。这些老旧浏览器不支持 WOFF、WOFF2,甚至无法通过 @font-face 使用原始 TTF——EOT 是它们的唯一选择。

对于 IE 9-11,WOFF 是更好的选择:它是开放标准,工具支持更广泛,也没有 DRM 和 URL 绑定的历史包袱。如果你的数据分析显示 IE 8 流量为零——在 2024 年及之后这几乎是必然的——请完全跳过 EOT。

在将 EOT 纳入构建之前,请检查你的实际浏览器数据。IE 8 及以下版本的全球市场份额实际上已为 0%。除非你的目标是被锁定在古老 IE 版本的特定企业内网或政府系统,否则 EOT 只会增加构建复杂度而毫无实际收益。

遗留提示
微软已于 2022 年 6 月正式停用 Internet Explorer。EOT 的存在仅为与极旧系统(政府机构、企业内网)保持向后兼容。所有新项目请跳过 EOT。
在 Bobcorn 中
EOT 是 Bobcorn 的可选导出格式。仅当项目明确需要支持 IE 8 或更早版本时才启用。Bobcorn 使用 ttf2eot 库从 TTF 进行转换,无需手动操作——只需在导出对话框中切换该选项,.eot 文件便会与其他字体格式一并生成。