Platform ID | Encoding ID | Description |
3 | 0 | Symbol |
3 | 1 | Unicode |
3 | 2 | ShiftJIS |
3 | 3 | Big5 |
3 | 4 | PRC |
3 | 5 | Wansung |
3 | 6 | Johab |
Type | Description |
USHORT | Table version number (0). |
USHORT | Number of encoding tables, n. |
Type | Description |
USHORT | Platform ID. |
USHORT | Platform-specific encoding ID. |
ULONG | Byte offset from beginning of table to the subtable for this encoding. |
Type | Name | Description |
USHORT | format | Format number is set to 0. |
USHORT | length | This is the length in bytes of the subtable. |
USHORT | version | Version number (starts at 0). |
BYTE | glyphIdArray[256] | An array that maps character codes to glyph index values. |
Type | Name | Description |
USHORT | format | Format number is set to 2. |
USHORT | length | Length in bytes. |
USHORT | version | Version number (starts at 0) |
USHORT | subHeaderKeys[256] | Array that maps high bytes to subHeaders: value is subHeader index * 8. |
4 words struct | subHeaders[ ] | Variable-length array of subHeader structures. |
4 words-struct | subHeaders[ ] | |
USHORT | glyphIndexArray[ ] | Variable-length array containing subarrays used for mapping the low byte of 2-byte characters. |
Type | Name | Description |
USHORT | firstCode | First valid low byte for this subHeader. |
USHORT | entryCount | Number of valid low bytes for this subHeader. |
SHORT | idDelta | See text below. |
USHORT | idRangeOffset | See text below. |
Type | Name | Description |
USHORT | format | Format number is set to 4. |
USHORT | length | Length in bytes. |
USHORT | version | Version number (starts at 0). |
USHORT | segCountX2 | 2 x segCount. |
USHORT | searchRange | 2 x (2**floor(log2(segCount))) |
USHORT | entrySelector | log2(searchRange/2) |
USHORT | rangeShift | 2 x segCount - searchRange |
USHORT | endCount[segCount] | End characterCode for each segment, last =0xFFFF. |
USHORT | reservedPad | Set to 0. |
USHORT | startCount[segCount] | Start character code for each segment. |
USHORT | idDelta[segCount] | Delta for all character codes in segment. |
USHORT | idRangeOffset[segCount] | Offsets into glyphIdArray or 0 |
USHORT | glyphIdArray[ ] | Glyph index array (arbitrary length) |
segCountX2 | 78 | |
searchRange | 64 | (2 * largest power of 2 £ 39) |
entrySelector | 5 | log2(32) |
rangeShift | 14 | 2 x 39 - 64 |
segCountX2: | 8 | |||
searchRange: | 8 | |||
entrySelector: | 4 | |||
rangeShift: | 0 | |||
endCode: | 20 | 90 | 153 | 0xFFFF |
reservedPad: | 0 | |||
startCode: | 10 | 30 | 100 | 0xFFFF |
idDelta: | -9 | -18 | -27 | 1 |
idRangeOffset: | 0 | 0 | 0 | 0 |
Type | Name | Description |
USHORT | format | Format number is set to 6. |
USHORT | length | Length in bytes. |
USHORT | version | Version number (starts at 0) |
USHORT | firstCode | First character code of subrange. |
USHORT | entryCount | Number of character codes in subrange. |
USHORT | glyphIdArray [entryCount] | Array of glyph index values for character codes in the range. |