Index

Code Pages

Code pages encompassed by a font can be obtained by calling the dtFontGetNumericValue function and setting the numeric_id parameter to 2102 (DV_NVAL_CPAGE_A) or 2103 (DV_NVAL_CPAGE_B). This information is not always available. Only more recent TrueType and OpenType fonts contain this information.

Format:  32-bit long (2 copies returned via DV_NVAL_CPAGE_A and DV_NVAL_CPAGE_B) totaling 64 bits.
Description:  These two values can be used to retrieve the code pages encompassed by the font. If the font file is a Microsoft Symbol Font, then the Symbol Character Set bit should be set. If the bit is set (1) then the code page is considered functional. If the bit is clear (0) then the code page is not considered functional. Each of the bits is treated as an independent flag and the bits can be set in any combination. The determination of "functional" is left up to the font designer, although character set selection should attempt to be functional by code pages if at all possible.

Symbol character sets have a special meaning. If the symbol bit is set, and the font file is a Microsoft Unicode Font, then all of the characters in the Unicode range 0xF000 - 0xF0FF (inclusive) will be used to enumerate the symbol character set. If the bit is not set, any characters present in that range will not be enumerated as a symbol character set.

All reserved fields must be zero.

DV_NVAL_CPAGE_A

Bit Code Page Description
0 1252 Latin 1
1 1250 Latin 2: Eastern Europe
2 1251 Cyrillic
3 1253 Greek
4 1254 Turkish
5 1255 Hebrew
6 1256 Arabic
7 1257 Windows Baltic
8 1258 Vietnamese
9-15   Reserved for Alternate ANSI
16 874 Thai
17 932 JIS/Japan
18 936 Chinese: Simplified chars--PRC and Singapore
19 949 Korean Wansung
20 950 Chinese: Traditional chars--Taiwan and Hong Kong
21 1361 Korean Johab
22 - 28   Reserved for Alternate ANSI & OEM
29   Macintosh Character Set (US Roman)
30   OEM Character Set
31   Symbol Character Set

DV_NVAL_CPAGE_B

Bit Code Page Description
0 - 15   Reserved for OEM
16 869 IBM Greek
17 866 MS-DOS Russian
18 865 MS-DOS Nordic
19 864 Arabic
20 863 MS-DOS Canadian French
21 862 Hebrew
22 861 MS-DOS Icelandic
23 860 MS-DOS Portuguese
24 857 IBM Turkish
25 855 IBM Cyrillic; primarily Russian
26 852 Latin 2
27 775 MS-DOS Baltic
28 737 Greek; former 437 G
29 708 Arabic; ASMO 708
30 850 WE/Latin 1
31 437 US
 

Index