4

规范(http://www.microsoft.com/typography/otspec/cmap.htm)只有platformID 3(windows)和platformID 1(Mac)以及windows平台中的encodingID。Windows 之外的其他平台和其他编码怎么样?

我曾经ttfdump转储其中一种 adobe 字体,它给了我:

'cmap' Table - Character to Glyph Index Mapping Table
-----------------------------------------------------
         'cmap' version: 0
         number of encodings: 5
         number of subtables: 3

Encoding   0.    PlatformID:  0
                 EcodingID:   3
                 SubTable: 0, Offset: 0x00000a0e

Encoding   1.    PlatformID:  0
                 EcodingID:   4
                 SubTable: 1, Offset: 0x0000cc26

Encoding   2.    PlatformID:  1
                 EcodingID:  25
                 SubTable: 2, Offset: 0x0000002c

Encoding   3.    PlatformID:  3
                 EcodingID:   1
                 SubTable: 0, Offset: 0x00000a0e

Encoding   4.    PlatformID:  3
                 EcodingID:  10
                 SubTable: 1, Offset: 0x0000cc26

所以它确实有其他平台和编码,但在哪里可以找到定义?

4

2 回答 2

3

Microsoft 文档中有下表:

 Platform ID  | Platform name | Platform-specific encoding IDs  | Language IDs
 -------------|---------------|---------------------------------|--------------
 0            | Unicode       | Various                         | Various 
 1            | Macintosh     | Script manager code             | Various
 2            | ISO [deprec]  | ISO encoding [deprecated]       | None 
 3            | Windows       | Windows encoding                | Various 
 4            | Custom        | Custom                          | None

关于非标准编码 ID:

如果新版本的 Unicode 移动字符,则会为 Unicode 平台分配一个新的编码 ID,以便正确指定字符代码语义。(由于 Unicode 稳定性策略,预计不需要这种需求。) Unicode 平台之间的区别-特定编码 ID 1 和 2 仅出于历史原因;Unicode 标准实际上在曲目和编码方面与 ISO 10646 相同。对于当前字体的所有实际目的,编码 ID 0、1 和 2 提供的区别并不重要,因此这些编码 ID 已被弃用。

当新的 cmap 子表格式被添加到规范中时,有时也会为 Unicode 平台分配一个新的编码 ID,以便与现有的解析器兼容。例如,当 cmap 子表格式 10 和 12 被添加到规范中时,编码 ID 4 也被添加,而当 cmap 子表格式 13 被添加到规范中时,编码 ID 6 被添加。上表中列出的 cmap 子表格式是唯一可用于相应编码 ID 的格式。

于 2014-08-13T08:57:50.910 回答
1

您错过了说明更多信息在名称表文档中的文字,位于http://www.microsoft.com/typography/otspec/name.htm,其中包含每个平台的编码和语言的(长)列表支持。

于 2014-08-13T15:29:18.593 回答