What is the platformID and encodingID value in CMAP OpenType?

The spec ( http://www.microsoft.com/typography/otspec/cmap.htm ) only has platformID 3 (windows) and platformID 1 (Mac), and an encoding ID on Windows platform. How about other platforms and other encodings alongside windows?

I am using ttfdump

to reset one of the adobe worms and it gives me:

'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

      

So it has other platforms and encodings, but where do you find definitions?

+3


source to share


2 answers


The Microsoft documentation is presented in the following table:

 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

      



About non-standard encoding identifiers:

A new encoding identifier for the Unicode platform will be assigned if the new version of Unicode moves characters to correctly indicate the semantics of the character code. (Due to the stability policies of Unicode, such a need is not expected.) The distinction between Unicode platform-specific encoding identifiers 1 and 2 are for historical reasons only; the Unicode standard is in fact identical in repertoire and encoding to ISO 10646. For all practical purposes in current fonts, the differences provided by encoding identifiers 0, 1 and 2 are not important, so these encoding identifiers are obsolete.

A new encoding identifier for the Unicode platform is also sometimes assigned when new subtable cmap formats are added to the specification to allow compatibility with existing parsers. For example, when subtable cmap formats 10 and 12 were added to the specification, encoding ID 4 was added as well, and when subtable format cmap 13 was added to the specification, encoding code 6. The format of the subtable cmap listed in the table above are the only ones that could be used for the corresponding encoding identifier.

+3


source


You missed the text that says there is more information in the naming table documentation at http://www.microsoft.com/typography/otspec/name.htm , which contains the (long) lists of encodings and languages ​​supported by each platform.



+1


source







All Articles