规范(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
Run Code Online (Sandbox Code Playgroud)
所以它确实有其他平台和编码,但在哪里可以找到定义呢?
微软文档中有一个下表:
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
Run Code Online (Sandbox Code Playgroud)
关于非标准编码 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 的格式。
| 归档时间: |
|
| 查看次数: |
2480 次 |
| 最近记录: |