TrueType 格式 0 cmap 表的字符编码?

问题描述

TrueType Reference Manual 解释了“cmap subtable format 0”将 8 位字符代码映射到字形索引值。这些字符代码使用哪种编码?这些是前 256 个 Unicode 字符吗?

解决方法

cmap 子表格式与编码半正交。正如 TT 参考手册所解释的(或者,我认为,在 OpenType spec 中更清楚一点),有指定平台 ID 的结构(OT 规范中的“EncodingRecord”,TT 参考手册中的“子表”)和编码ID。我说“半”正交是因为某些格式只能用于某些平台/编码。

在实践中,格式 0 仅用于平台 1,Macintosh,或用于平台 3 编码 0,“Windows 符号”。 Macintosh 平台仅使用旧版 Mac 平台中定义的旧式 8 位编码。

在创建新字体时,格式 0 只能用于“Windows 符号”字体,即使这样也不再是最佳实践(非标准字符可以使用 Unicode 专用区码点表示)。>