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

character encoding for TrueType format 0 cmap tables?

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

cmap子表格式与编码半正交。正如 TT Ref Manual 解释的那样(或者,我认为,在 OpenType spec 中更清楚一点),有一些结构(OT 规范中的“EncodingRecord”,TT Ref Manual 中的“subtables”)指定了一个 platformID和编码 ID。我说“半”正交是因为某些格式只能用于某些 platforms/encodings.

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

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