1 /* charsets.c -- character set information and mappings
2
3 (c) 1998-2004 (W3C) MIT, ERCIM, Keio University
4 See tidy.h for the copyright notice.
5
6 $Id: charsets.c,v 1.4 2004/08/02 02:22:48 terry_teague Exp $
7 */
8
9 #include "tidy.h"
10 #include "tmbstr.h"
11 #include "charsets.h"
12
13 /* todo: documentation of table and data */
14 /* todo: integration of data and routines */
15 /* todo: minor cleanup for ambiguous relations */
16 static struct _charsetInfo
17 {
18 uint id;
19 ctmbstr charset;
20 uint codepage;
21 uint stateful;
22 } const charsetInfo[] =
23 {
24 { 1, "adobe-standard-encoding", 0, no }, /* IANA */
25 { 1, "csadobestandardencoding", 0, no }, /* IANA */
26 { 2, "adobe-symbol-encoding", 0, no }, /* IANA */
27 { 2, "cshppsmath", 0, no }, /* IANA */
28 { 3, "iso-ir-99", 0, no }, /* IANA */
29 { 3, "ansi_x3.110-1983", 0, no }, /* IANA */
30 { 3, "csa_t500-1983", 0, no }, /* IANA */
31 { 3, "naplps", 0, no }, /* IANA */
32 { 3, "csiso99naplps", 0, no }, /* IANA */
33 { 4, "us-ascii", 20127, no }, /* IANA */
34 { 4, "iso-ir-6", 20127, no }, /* IANA */
35 { 4, "ansi_x3.4-1968", 20127, no }, /* IANA */
36 { 4, "ansi_x3.4-1986", 20127, no }, /* IANA */
37 { 4, "iso_646.irv:1991", 20127, no }, /* IANA */
38 { 4, "ascii", 20127, no }, /* IANA */
39 { 4, "iso646-us", 20127, no }, /* IANA */
40 { 4, "us", 20127, no }, /* IANA */
41 { 4, "ibm367", 20127, no }, /* IANA */
42 { 4, "cp367", 20127, no }, /* IANA */
43 { 4, "csascii", 20127, no }, /* IANA */
44 { 4, "iso-ir-6us", 20127, no }, /* MICROSOFT */
45 { 5, "iso-ir-89", 0, no }, /* IANA */
46 { 5, "asmo_449", 0, no }, /* IANA */
47 { 5, "iso_9036", 0, no }, /* IANA */
48 { 5, "arabic7", 0, no }, /* IANA */
49 { 5, "csiso89asmo449", 0, no }, /* IANA */
50 { 6, "big5", 950, no }, /* IANA */
51 { 6, "csbig5", 950, no }, /* IANA */
52 { 6, "cn-big5", 950, no }, /* MICROSOFT */
53 { 6, "x-x-big5", 950, no }, /* MICROSOFT */
54 { 7, "big5-hkscs", 950, no }, /* IANA */
55 { 7, "cn-big5", 950, no }, /* MICROSOFT */
56 { 7, "x-x-big5", 950, no }, /* MICROSOFT */
57 { 8, "bocu-1", 0, no }, /* IANA */
58 { 8, "csbocu-1", 0, no }, /* IANA */
59 { 9, "iso-ir-4", 0, no }, /* IANA */
60 { 9, "bs_4730", 0, no }, /* IANA */
61 { 9, "iso646-gb", 0, no }, /* IANA */
62 { 9, "gb", 0, no }, /* IANA */
63 { 9, "uk", 0, no }, /* IANA */
64 { 9, "csiso4unitedkingdom", 0, no }, /* IANA */
65 { 10, "iso-ir-47", 0, no }, /* IANA */
66 { 10, "bs_viewdata", 0, no }, /* IANA */
67 { 10, "csiso47bsviewdata", 0, no }, /* IANA */
68 { 11, "cesu-8", 0, no }, /* IANA */
69 { 11, "cscesu-8", 0, no }, /* IANA */
70 { 12, "iso-ir-121", 0, no }, /* IANA */
71 { 12, "csa_z243.4-1985-1", 0, no }, /* IANA */
72 { 12, "iso646-ca", 0, no }, /* IANA */
73 { 12, "csa7-1", 0, no }, /* IANA */
74 { 12, "ca", 0, no }, /* IANA */
75 { 12, "csiso121canadian1", 0, no }, /* IANA */
76 { 13, "iso-ir-122", 0, no }, /* IANA */
77 { 13, "csa_z243.4-1985-2", 0, no }, /* IANA */
78 { 13, "iso646-ca2", 0, no }, /* IANA */
79 { 13, "csa7-2", 0, no }, /* IANA */
80 { 13, "csiso122canadian2", 0, no }, /* IANA */
81 { 14, "iso-ir-123", 0, no }, /* IANA */
82 { 14, "csa_z243.4-1985-gr", 0, no }, /* IANA */
83 { 14, "csiso123csaz24341985gr", 0, no }, /* IANA */
84 { 15, "iso-ir-139", 0, no }, /* IANA */
85 { 15, "csn_369103", 0, no }, /* IANA */
86 { 15, "csiso139csn369103", 0, no }, /* IANA */
87 { 16, "dec-mcs", 0, no }, /* IANA */
88 { 16, "dec", 0, no }, /* IANA */
89 { 16, "csdecmcs", 0, no }, /* IANA */
90 { 17, "iso-ir-21", 20106, no }, /* IANA */
91 { 17, "din_66003", 20106, no }, /* IANA */
92 { 17, "de", 20106, no }, /* IANA */
93 { 17, "iso646-de", 20106, no }, /* IANA */
94 { 17, "csiso21german", 20106, no }, /* IANA */
95 { 17, "x-ia5-german", 20106, no }, /* MICROSOFT */
96 { 18, "dk-us", 0, no }, /* IANA */
97 { 18, "csdkus", 0, no }, /* IANA */
98 { 19, "ds_2089", 0, no }, /* IANA */
99 { 19, "ds2089", 0, no }, /* IANA */
100 { 19, "iso646-dk", 0, no }, /* IANA */
101 { 19, "dk", 0, no }, /* IANA */
102 { 19, "csiso646danish", 0, no }, /* IANA */
103 { 20, "ebcdic-at-de", 0, no }, /* IANA */
104 { 20, "csibmebcdicatde", 0, no }, /* IANA */
105 { 21, "ebcdic-at-de-a", 0, no }, /* IANA */
106 { 21, "csebcdicatdea", 0, no }, /* IANA */
107 { 22, "ebcdic-ca-fr", 0, no }, /* IANA */
108 { 22, "csebcdiccafr", 0, no }, /* IANA */
109 { 23, "ebcdic-dk-no", 0, no }, /* IANA */
110 { 23, "csebcdicdkno", 0, no }, /* IANA */
111 { 24, "ebcdic-dk-no-a", 0, no }, /* IANA */
112 { 24, "csebcdicdknoa", 0, no }, /* IANA */
113 { 25, "ebcdic-es", 0, no }, /* IANA */
114 { 25, "csebcdices", 0, no }, /* IANA */
115 { 26, "ebcdic-es-a", 0, no }, /* IANA */
116 { 26, "csebcdicesa", 0, no }, /* IANA */
117 { 27, "ebcdic-es-s", 0, no }, /* IANA */
118 { 27, "csebcdicess", 0, no }, /* IANA */
119 { 28, "ebcdic-fi-se", 0, no }, /* IANA */
120 { 28, "csebcdicfise", 0, no }, /* IANA */
121 { 29, "ebcdic-fi-se-a", 0, no }, /* IANA */
122 { 29, "csebcdicfisea", 0, no }, /* IANA */
123 { 30, "ebcdic-fr", 0, no }, /* IANA */
124 { 30, "csebcdicfr", 0, no }, /* IANA */
125 { 31, "ebcdic-it", 0, no }, /* IANA */
126 { 31, "csebcdicit", 0, no }, /* IANA */
127 { 32, "ebcdic-pt", 0, no }, /* IANA */
128 { 32, "csebcdicpt", 0, no }, /* IANA */
129 { 33, "ebcdic-uk", 0, no }, /* IANA */
130 { 33, "csebcdicuk", 0, no }, /* IANA */
131 { 34, "ebcdic-us", 0, no }, /* IANA */
132 { 34, "csebcdicus", 0, no }, /* IANA */
133 { 35, "iso-ir-111", 0, no }, /* IANA */
134 { 35, "ecma-cyrillic", 0, no }, /* IANA */
135 { 35, "csiso111ecmacyrillic", 0, no }, /* IANA */
136 { 36, "iso-ir-17", 0, no }, /* IANA */
137 { 36, "es", 0, no }, /* IANA */
138 { 36, "iso646-es", 0, no }, /* IANA */
139 { 36, "csiso17spanish", 0, no }, /* IANA */
140 { 37, "iso-ir-85", 0, no }, /* IANA */
141 { 37, "es2", 0, no }, /* IANA */
142 { 37, "iso646-es2", 0, no }, /* IANA */
143 { 37, "csiso85spanish2", 0, no }, /* IANA */
144 { 38, "euc-kr", 51949, no }, /* IANA */
145 { 38, "cseuckr", 51949, no }, /* IANA */
146 { 39, "extended_unix_code_fixed_width_for_japanese", 0, no }, /* IANA */
147 { 39, "cseucfixwidjapanese", 0, no }, /* IANA */
148 { 40, "euc-jp", 51932, no }, /* IANA */
149 { 40, "extended_unix_code_packed_format_for_japanese", 51932, no }, /* IANA */
150 { 40, "cseucpkdfmtjapanese", 51932, no }, /* IANA */
151 { 40, "x-euc-jp", 51932, no }, /* MICROSOFT */
152 { 40, "x-euc", 51932, no }, /* MICROSOFT */
153 { 41, "gb18030", 54936, no }, /* IANA */
154 { 42, "gb2312", 936, no }, /* IANA */
155 { 42, "csgb2312", 936, no }, /* IANA */
156 { 42, "csgb231280", 936, no }, /* MICROSOFT */
157 { 42, "gb2312-80", 936, no }, /* MICROSOFT */
158 { 42, "gb231280", 936, no }, /* MICROSOFT */
159 { 42, "cn-gb", 936, no }, /* MICROSOFT */
160 { 43, "iso-ir-57", 0, no }, /* IANA */
161 { 43, "gb_1988-80", 0, no }, /* IANA */
162 { 43, "cn", 0, no }, /* IANA */
163 { 43, "iso646-cn", 0, no }, /* IANA */
164 { 43, "csiso57gb1988", 0, no }, /* IANA */
165 { 44, "iso-ir-58", 936, no }, /* IANA */
166 { 44, "gb_2312-80", 936, no }, /* IANA */
167 { 44, "chinese", 936, no }, /* IANA */
168 { 44, "csiso58gb231280", 936, no }, /* IANA */
169 { 44, "csgb231280", 936, no }, /* MICROSOFT */
170 { 44, "gb2312-80", 936, no }, /* MICROSOFT */
171 { 44, "gb231280", 936, no }, /* MICROSOFT */
172 { 44, "cn-gb", 936, no }, /* MICROSOFT */
173 { 45, "gbk", 936, no }, /* IANA */
174 { 45, "cp936", 936, no }, /* IANA */
175 { 45, "ms936", 936, no }, /* IANA */
176 { 45, "windows-936", 936, no }, /* IANA */
177 { 45, "csgb231280", 936, no }, /* MICROSOFT */
178 { 45, "gb2312-80", 936, no }, /* MICROSOFT */
179 { 45, "gb231280", 936, no }, /* MICROSOFT */
180 { 45, "cn-gb", 936, no }, /* MICROSOFT */
181 { 46, "iso-ir-153", 0, no }, /* IANA */
182 { 46, "gost_19768-74", 0, no }, /* IANA */
183 { 46, "st_sev_358-88", 0, no }, /* IANA */
184 { 46, "csiso153gost1976874", 0, no }, /* IANA */
185 { 47, "iso-ir-150", 0, no }, /* IANA */
186 { 47, "greek-ccitt", 0, no }, /* IANA */
187 { 47, "csiso150", 0, no }, /* IANA */
188 { 47, "csiso150greekccitt", 0, no }, /* IANA */
189 { 48, "iso-ir-88", 0, no }, /* IANA */
190 { 48, "greek7", 0, no }, /* IANA */
191 { 48, "csiso88greek7", 0, no }, /* IANA */
192 { 49, "iso-ir-18", 0, no }, /* IANA */
193 { 49, "greek7-old", 0, no }, /* IANA */
194 { 49, "csiso18greek7old", 0, no }, /* IANA */
195 { 50, "hp-desktop", 0, no }, /* IANA */
196 { 50, "cshpdesktop", 0, no }, /* IANA */
197 { 51, "hp-legal", 0, no }, /* IANA */
198 { 51, "cshplegal", 0, no }, /* IANA */
199 { 52, "hp-math8", 0, no }, /* IANA */
200 { 52, "cshpmath8", 0, no }, /* IANA */
201 { 53, "hp-pi-font", 0, no }, /* IANA */
202 { 53, "cshppifont", 0, no }, /* IANA */
203 { 54, "hp-roman8", 0, no }, /* IANA */
204 { 54, "roman8", 0, no }, /* IANA */
205 { 54, "r8", 0, no }, /* IANA */
206 { 54, "cshproman8", 0, no }, /* IANA */
207 { 55, "hz-gb-2312", 52936, yes }, /* IANA */
208 { 56, "ibm-symbols", 0, no }, /* IANA */
209 { 56, "csibmsymbols", 0, no }, /* IANA */
210 { 57, "ibm-thai", 20838, no }, /* IANA */
211 { 57, "csibmthai", 20838, no }, /* IANA */
212 { 57, "x-ebcdic-thai", 20838, no }, /* MICROSOFT */
213 { 58, "ibm00858", 858, no }, /* IANA */
214 { 58, "ccsid00858", 858, no }, /* IANA */
215 { 58, "cp00858", 858, no }, /* IANA */
216 { 58, "pc-multilingual-850+euro", 858, no }, /* IANA */
217 { 59, "ibm00924", 20924, no }, /* IANA */
218 { 59, "ccsid00924", 20924, no }, /* IANA */
219 { 59, "cp00924", 20924, no }, /* IANA */
220 { 59, "ebcdic-latin9--euro", 20924, no }, /* IANA */
221 { 60, "ibm01140", 1140, no }, /* IANA */
222 { 60, "ccsid01140", 1140, no }, /* IANA */
223 { 60, "cp01140", 1140, no }, /* IANA */
224 { 60, "ebcdic-us-37+euro", 1140, no }, /* IANA */
225 { 60, "x-ebcdic-cp-us-euro", 1140, no }, /* MICROSOFT */
226 { 61, "ibm01141", 1141, no }, /* IANA */
227 { 61, "ccsid01141", 1141, no }, /* IANA */
228 { 61, "cp01141", 1141, no }, /* IANA */
229 { 61, "ebcdic-de-273+euro", 1141, no }, /* IANA */
230 { 61, "x-ebcdic-germany-euro", 1141, no }, /* MICROSOFT */
231 { 62, "ibm01142", 1142, no }, /* IANA */
232 { 62, "ccsid01142", 1142, no }, /* IANA */
233 { 62, "cp01142", 1142, no }, /* IANA */
234 { 62, "ebcdic-dk-277+euro", 1142, no }, /* IANA */
235 { 62, "ebcdic-no-277+euro", 1142, no }, /* IANA */
236 { 62, "x-ebcdic-denmarknorway-euro", 1142, no }, /* MICROSOFT */
237 { 63, "ibm01143", 1143, no }, /* IANA */
238 { 63, "ccsid01143", 1143, no }, /* IANA */
239 { 63, "cp01143", 1143, no }, /* IANA */
240 { 63, "ebcdic-fi-278+euro", 1143, no }, /* IANA */
241 { 63, "ebcdic-se-278+euro", 1143, no }, /* IANA */
242 { 63, "x-ebcdic-france", 1143, no }, /* MICROSOFT */
243 { 63, "x-ebcdic-finlandsweden-euro", 1143, no }, /* MICROSOFT */
244 { 64, "ibm01144", 1144, no }, /* IANA */
245 { 64, "ccsid01144", 1144, no }, /* IANA */
246 { 64, "cp01144", 1144, no }, /* IANA */
247 { 64, "ebcdic-it-280+euro", 1144, no }, /* IANA */
248 { 64, "x-ebcdic-italy-euro", 1144, no }, /* MICROSOFT */
249 { 65, "ibm01145", 1145, no }, /* IANA */
250 { 65, "ccsid01145", 1145, no }, /* IANA */
251 { 65, "cp01145", 1145, no }, /* IANA */
252 { 65, "ebcdic-es-284+euro", 1145, no }, /* IANA */
253 { 65, "x-ebcdic-spain-euro", 1145, no }, /* MICROSOFT */
254 { 66, "ibm01146", 1146, no }, /* IANA */
255 { 66, "ccsid01146", 1146, no }, /* IANA */
256 { 66, "cp01146", 1146, no }, /* IANA */
257 { 66, "ebcdic-gb-285+euro", 1146, no }, /* IANA */
258 { 66, "x-ebcdic-uk-euro", 1146, no }, /* MICROSOFT */
259 { 67, "ibm01147", 1147, no }, /* IANA */
260 { 67, "ccsid01147", 1147, no }, /* IANA */
261 { 67, "cp01147", 1147, no }, /* IANA */
262 { 67, "ebcdic-fr-297+euro", 1147, no }, /* IANA */
263 { 67, "x-ebcdic-france-euro", 1147, no }, /* MICROSOFT */
264 { 68, "ibm01148", 1148, no }, /* IANA */
265 { 68, "ccsid01148", 1148, no }, /* IANA */
266 { 68, "cp01148", 1148, no }, /* IANA */
267 { 68, "ebcdic-international-500+euro", 1148, no }, /* IANA */
268 { 68, "x-ebcdic-international-euro", 1148, no }, /* MICROSOFT */
269 { 69, "ibm01149", 1149, no }, /* IANA */
270 { 69, "ccsid01149", 1149, no }, /* IANA */
271 { 69, "cp01149", 1149, no }, /* IANA */
272 { 69, "ebcdic-is-871+euro", 1149, no }, /* IANA */
273 { 69, "x-ebcdic-icelandic-euro", 1149, no }, /* MICROSOFT */
274 { 70, "ibm037", 37, no }, /* IANA */
275 { 70, "cp037", 37, no }, /* IANA */
276 { 70, "ebcdic-cp-us", 37, no }, /* IANA */
277 { 70, "ebcdic-cp-ca", 37, no }, /* IANA */
278 { 70, "ebcdic-cp-wt", 37, no }, /* IANA */
279 { 70, "ebcdic-cp-nl", 37, no }, /* IANA */
280 { 70, "csibm037", 37, no }, /* IANA */
281 { 71, "ibm038", 0, no }, /* IANA */
282 { 71, "ebcdic-int", 0, no }, /* IANA */
283 { 71, "cp038", 0, no }, /* IANA */
284 { 71, "csibm038", 0, no }, /* IANA */
285 { 72, "ibm1026", 1026, no }, /* IANA */
286 { 72, "cp1026", 1026, no }, /* IANA */
287 { 72, "csibm1026", 1026, no }, /* IANA */
288 { 73, "ibm1047", 0, no }, /* IANA */
289 { 73, "ibm-1047", 0, no }, /* IANA */
290 { 74, "ibm273", 20273, no }, /* IANA */
291 { 74, "cp273", 20273, no }, /* IANA */
292 { 74, "csibm273", 20273, no }, /* IANA */
293 { 74, "x-ebcdic-germany", 20273, no }, /* MICROSOFT */
294 { 75, "ibm274", 0, no }, /* IANA */
295 { 75, "ebcdic-be", 0, no }, /* IANA */
296 { 75, "cp274", 0, no }, /* IANA */
297 { 75, "csibm274", 0, no }, /* IANA */
298 { 76, "ibm275", 0, no }, /* IANA */
299 { 76, "ebcdic-br", 0, no }, /* IANA */
300 { 76, "cp275", 0, no }, /* IANA */
301 { 76, "csibm275", 0, no }, /* IANA */
302 { 77, "ibm277", 20277, no }, /* IANA */
303 { 77, "ebcdic-cp-dk", 20277, no }, /* IANA */
304 { 77, "ebcdic-cp-no", 20277, no }, /* IANA */
305 { 77, "csibm277", 20277, no }, /* IANA */
306 { 77, "x-ebcdic-denmarknorway", 20277, no }, /* MICROSOFT */
307 { 78, "ibm278", 20278, no }, /* IANA */
308 { 78, "cp278", 20278, no }, /* IANA */
309 { 78, "ebcdic-cp-fi", 20278, no }, /* IANA */
310 { 78, "ebcdic-cp-se", 20278, no }, /* IANA */
311 { 78, "csibm278", 20278, no }, /* IANA */
312 { 78, "x-ebcdic-finlandsweden", 20278, no }, /* MICROSOFT */
313 { 79, "ibm280", 20280, no }, /* IANA */
314 { 79, "cp280", 20280, no }, /* IANA */
315 { 79, "ebcdic-cp-it", 20280, no }, /* IANA */
316 { 79, "csibm280", 20280, no }, /* IANA */
317 { 79, "x-ebcdic-italy", 20280, no }, /* MICROSOFT */
318 { 80, "ibm281", 0, no }, /* IANA */
319 { 80, "ebcdic-jp-e", 0, no }, /* IANA */
320 { 80, "cp281", 0, no }, /* IANA */
321 { 80, "csibm281", 0, no }, /* IANA */
322 { 81, "ibm284", 20284, no }, /* IANA */
323 { 81, "cp284", 20284, no }, /* IANA */
324 { 81, "ebcdic-cp-es", 20284, no }, /* IANA */
325 { 81, "csibm284", 20284, no }, /* IANA */
326 { 81, "x-ebcdic-spain", 20284, no }, /* MICROSOFT */
327 { 82, "ibm285", 20285, no }, /* IANA */
328 { 82, "cp285", 20285, no }, /* IANA */
329 { 82, "ebcdic-cp-gb", 20285, no }, /* IANA */
330 { 82, "csibm285", 20285, no }, /* IANA */
331 { 82, "x-ebcdic-uk", 20285, no }, /* MICROSOFT */
332 { 83, "ibm290", 20290, no }, /* IANA */
333 { 83, "cp290", 20290, no }, /* IANA */
334 { 83, "ebcdic-jp-kana", 20290, no }, /* IANA */
335 { 83, "csibm290", 20290, no }, /* IANA */
336 { 83, "x-ebcdic-japanesekatakana", 20290, no }, /* MICROSOFT */
337 { 84, "ibm297", 20297, no }, /* IANA */
338 { 84, "cp297", 20297, no }, /* IANA */
339 { 84, "ebcdic-cp-fr", 20297, no }, /* IANA */
340 { 84, "csibm297", 20297, no }, /* IANA */
341 { 85, "ibm420", 20420, no }, /* IANA */
342 { 85, "cp420", 20420, no }, /* IANA */
343 { 85, "ebcdic-cp-ar1", 20420, no }, /* IANA */
344 { 85, "csibm420", 20420, no }, /* IANA */
345 { 85, "x-ebcdic-arabic", 20420, no }, /* MICROSOFT */
346 { 86, "ibm423", 20423, no }, /* IANA */
347 { 86, "cp423", 20423, no }, /* IANA */
348 { 86, "ebcdic-cp-gr", 20423, no }, /* IANA */
349 { 86, "csibm423", 20423, no }, /* IANA */
350 { 86, "x-ebcdic-greek", 20423, no }, /* MICROSOFT */
351 { 87, "ibm424", 20424, no }, /* IANA */
352 { 87, "cp424", 20424, no }, /* IANA */
353 { 87, "ebcdic-cp-he", 20424, no }, /* IANA */
354 { 87, "csibm424", 20424, no }, /* IANA */
355 { 87, "x-ebcdic-hebrew", 20424, no }, /* MICROSOFT */
356 { 88, "ibm437", 437, no }, /* IANA */
357 { 88, "cp437", 437, no }, /* IANA */
358 { 88, "437", 437, no }, /* IANA */
359 { 88, "cspc8codepage437", 437, no }, /* IANA */
360 { 88, "codepage437", 437, no }, /* MICROSOFT */
361 { 88, "cspc8", 437, no }, /* MICROSOFT */
362 { 89, "ibm500", 500, no }, /* IANA */
363 { 89, "cp500", 500, no }, /* IANA */
364 { 89, "ebcdic-cp-be", 500, no }, /* IANA */
365 { 89, "ebcdic-cp-ch", 500, no }, /* IANA */
366 { 89, "csibm500", 500, no }, /* IANA */
367 { 90, "ibm775", 775, no }, /* IANA */
368 { 90, "cp775", 775, no }, /* IANA */
369 { 90, "cspc775baltic", 775, no }, /* IANA */
370 { 91, "ibm850", 850, no }, /* IANA */
371 { 91, "cp850", 850, no }, /* IANA */
372 { 91, "850", 850, no }, /* IANA */
373 { 91, "cspc850multilingual", 850, no }, /* IANA */
374 { 92, "ibm851", 0, no }, /* IANA */
375 { 92, "cp851", 0, no }, /* IANA */
376 { 92, "851", 0, no }, /* IANA */
377 { 92, "csibm851", 0, no }, /* IANA */
378 { 93, "ibm852", 852, no }, /* IANA */
379 { 93, "cp852", 852, no }, /* IANA */
380 { 93, "852", 852, no }, /* IANA */
381 { 93, "cspcp852", 852, no }, /* IANA */
382 { 94, "ibm855", 855, no }, /* IANA */
383 { 94, "cp855", 855, no }, /* IANA */
384 { 94, "855", 855, no }, /* IANA */
385 { 94, "csibm855", 855, no }, /* IANA */
386 { 95, "ibm857", 857, no }, /* IANA */
387 { 95, "cp857", 857, no }, /* IANA */
388 { 95, "857", 857, no }, /* IANA */
389 { 95, "csibm857", 857, no }, /* IANA */
390 { 96, "ibm860", 860, no }, /* IANA */
391 { 96, "cp860", 860, no }, /* IANA */
392 { 96, "860", 860, no }, /* IANA */
393 { 96, "csibm860", 860, no }, /* IANA */
394 { 97, "ibm861", 861, no }, /* IANA */
395 { 97, "cp861", 861, no }, /* IANA */
396 { 97, "861", 861, no }, /* IANA */
397 { 97, "cp-is", 861, no }, /* IANA */
398 { 97, "csibm861", 861, no }, /* IANA */
399 { 98, "ibm862", 862, no }, /* IANA */
400 { 98, "cp862", 862, no }, /* IANA */
401 { 98, "862", 862, no }, /* IANA */
402 { 98, "cspc862latinhebrew", 862, no }, /* IANA */
403 { 98, "dos-862", 862, no }, /* MICROSOFT */
404 { 99, "ibm863", 863, no }, /* IANA */
405 { 99, "cp863", 863, no }, /* IANA */
406 { 99, "863", 863, no }, /* IANA */
407 { 99, "csibm863", 863, no }, /* IANA */
408 { 100, "ibm864", 864, no }, /* IANA */
409 { 100, "cp864", 864, no }, /* IANA */
410 { 100, "csibm864", 864, no }, /* IANA */
411 { 101, "ibm865", 865, no }, /* IANA */
412 { 101, "cp865", 865, no }, /* IANA */
413 { 101, "865", 865, no }, /* IANA */
414 { 101, "csibm865", 865, no }, /* IANA */
415 { 102, "ibm866", 866, no }, /* IANA */
416 { 102, "cp866", 866, no }, /* IANA */
417 { 102, "866", 866, no }, /* IANA */
418 { 102, "csibm866", 866, no }, /* IANA */
419 { 103, "ibm868", 0, no }, /* IANA */
420 { 103, "cp868", 0, no }, /* IANA */
421 { 103, "cp-ar", 0, no }, /* IANA */
422 { 103, "csibm868", 0, no }, /* IANA */
423 { 104, "ibm869", 869, no }, /* IANA */
424 { 104, "cp869", 869, no }, /* IANA */
425 { 104, "869", 869, no }, /* IANA */
426 { 104, "cp-gr", 869, no }, /* IANA */
427 { 104, "csibm869", 869, no }, /* IANA */
428 { 105, "ibm870", 870, no }, /* IANA */
429 { 105, "cp870", 870, no }, /* IANA */
430 { 105, "ebcdic-cp-roece", 870, no }, /* IANA */
431 { 105, "ebcdic-cp-yu", 870, no }, /* IANA */
432 { 105, "csibm870", 870, no }, /* IANA */
433 { 106, "ibm871", 20871, no }, /* IANA */
434 { 106, "cp871", 20871, no }, /* IANA */
435 { 106, "ebcdic-cp-is", 20871, no }, /* IANA */
436 { 106, "csibm871", 20871, no }, /* IANA */
437 { 106, "x-ebcdic-icelandic", 20871, no }, /* MICROSOFT */
438 { 107, "ibm880", 20880, no }, /* IANA */
439 { 107, "cp880", 20880, no }, /* IANA */
440 { 107, "ebcdic-cyrillic", 20880, no }, /* IANA */
441 { 107, "csibm880", 20880, no }, /* IANA */
442 { 107, "x-ebcdic-cyrillicrussian", 20880, no }, /* MICROSOFT */
443 { 108, "ibm891", 0, no }, /* IANA */
444 { 108, "cp891", 0, no }, /* IANA */
445 { 108, "csibm891", 0, no }, /* IANA */
446 { 109, "ibm903", 0, no }, /* IANA */
447 { 109, "cp903", 0, no }, /* IANA */
448 { 109, "csibm903", 0, no }, /* IANA */
449 { 110, "ibm904", 0, no }, /* IANA */
450 { 110, "cp904", 0, no }, /* IANA */
451 { 110, "904", 0, no }, /* IANA */
452 { 110, "csibbm904", 0, no }, /* IANA */
453 { 111, "ibm905", 20905, no }, /* IANA */
454 { 111, "cp905", 20905, no }, /* IANA */
455 { 111, "ebcdic-cp-tr", 20905, no }, /* IANA */
456 { 111, "csibm905", 20905, no }, /* IANA */
457 { 111, "x-ebcdic-turkish", 20905, no }, /* MICROSOFT */
458 { 112, "ibm918", 0, no }, /* IANA */
459 { 112, "cp918", 0, no }, /* IANA */
460 { 112, "ebcdic-cp-ar2", 0, no }, /* IANA */
461 { 112, "csibm918", 0, no }, /* IANA */
462 { 113, "iso-ir-143", 0, no }, /* IANA */
463 { 113, "iec_p27-1", 0, no }, /* IANA */
464 { 113, "csiso143iecp271", 0, no }, /* IANA */
465 { 114, "iso-ir-49", 0, no }, /* IANA */
466 { 114, "inis", 0, no }, /* IANA */
467 { 114, "csiso49inis", 0, no }, /* IANA */
468 { 115, "iso-ir-50", 0, no }, /* IANA */
469 { 115, "inis-8", 0, no }, /* IANA */
470 { 115, "csiso50inis8", 0, no }, /* IANA */
471 { 116, "iso-ir-51", 0, no }, /* IANA */
472 { 116, "inis-cyrillic", 0, no }, /* IANA */
473 { 116, "csiso51iniscyrillic", 0, no }, /* IANA */
474 { 117, "invariant", 0, no }, /* IANA */
475 { 117, "csinvariant", 0, no }, /* IANA */
476 { 118, "iso-10646-j-1", 0, no }, /* IANA */
477 { 119, "iso-10646-ucs-2", 1200, no }, /* IANA */
478 { 119, "csunicode", 1200, no }, /* IANA */
479 { 119, "unicode", 1200, no }, /* MICROSOFT */
480 { 120, "iso-10646-ucs-4", 0, no }, /* IANA */
481 { 120, "csucs4", 0, no }, /* IANA */
482 { 121, "iso-10646-ucs-basic", 0, no }, /* IANA */
483 { 121, "csunicodeascii", 0, no }, /* IANA */
484 { 122, "iso-10646-unicode-latin1", 0, no }, /* IANA */
485 { 122, "iso-10646", 0, no }, /* IANA */
486 { 122, "csunicodelatin1", 0, no }, /* IANA */
487 { 123, "iso-10646-utf-1", 0, no }, /* IANA */
488 { 123, "csiso10646utf1", 0, no }, /* IANA */
489 { 124, "iso-2022-cn", 0, yes }, /* IANA */
490 { 125, "iso-2022-cn-ext", 0, yes }, /* IANA */
491 { 126, "iso-2022-jp", 50220, yes }, /* IANA */
492 { 126, "csiso2022jp", 50220, yes }, /* IANA */
493 { 127, "iso-2022-jp-2", 0, yes }, /* IANA */
494 { 127, "csiso2022jp2", 0, yes }, /* IANA */
495 { 128, "iso-2022-kr", 50225, yes }, /* IANA */
496 { 128, "csiso2022kr", 50225, yes }, /* IANA */
497 { 129, "iso-8859-1-windows-3.0-latin-1", 0, no }, /* IANA */
498 { 129, "cswindows30latin1", 0, no }, /* IANA */
499 { 130, "iso-8859-1-windows-3.1-latin-1", 0, no }, /* IANA */
500 { 130, "cswindows31latin1", 0, no }, /* IANA */
501 { 131, "iso-8859-10", 0, no }, /* IANA */
502 { 131, "iso-ir-157", 0, no }, /* IANA */
503 { 131, "l6", 0, no }, /* IANA */
504 { 131, "iso_8859-10:1992", 0, no }, /* IANA */
505 { 131, "csisolatin6", 0, no }, /* IANA */
506 { 131, "latin6", 0, no }, /* IANA */
507 { 132, "iso-8859-13", 28603, no }, /* IANA */
508 { 133, "iso-8859-14", 0, no }, /* IANA */
509 { 133, "iso-ir-199", 0, no }, /* IANA */
510 { 133, "iso-celtic", 0, no }, /* IANA */
511 { 133, "iso_8859-14:1998", 0, no }, /* IANA */
512 { 133, "iso_8859-14", 0, no }, /* IANA */
513 { 133, "latin8", 0, no }, /* IANA */
514 { 133, "l8", 0, no }, /* IANA */
515 { 134, "iso-8859-15", 28605, no }, /* IANA */
516 { 134, "iso_8859-15", 28605, no }, /* IANA */
517 { 134, "latin-9", 28605, no }, /* IANA */
518 { 134, "l9", 28605, no }, /* MICROSOFT */
519 { 134, "latin9", 28605, no }, /* MICROSOFT */
520 { 135, "iso-8859-16", 0, no }, /* IANA */
521 { 135, "iso-ir-226", 0, no }, /* IANA */
522 { 135, "iso_8859-16:2001", 0, no }, /* IANA */
523 { 135, "iso_8859-16", 0, no }, /* IANA */
524 { 135, "latin10", 0, no }, /* IANA */
525 { 135, "l10", 0, no }, /* IANA */
526 { 136, "iso-8859-2-windows-latin-2", 0, no }, /* IANA */
527 { 136, "cswindows31latin2", 0, no }, /* IANA */
528 { 137, "iso-8859-9-windows-latin-5", 0, no }, /* IANA */
529 { 137, "cswindows31latin5", 0, no }, /* IANA */
530 { 138, "iso-ir-90", 0, no }, /* IANA */
531 { 138, "csiso90", 0, no }, /* IANA */
532 { 139, "iso-unicode-ibm-1261", 0, no }, /* IANA */
533 { 139, "csunicodeibm1261", 0, no }, /* IANA */
534 { 140, "iso-unicode-ibm-1264", 0, no }, /* IANA */
535 { 140, "csunicodeibm1264", 0, no }, /* IANA */
536 { 141, "iso-unicode-ibm-1265", 0, no }, /* IANA */
537 { 141, "csunicodeibm1265", 0, no }, /* IANA */
538 { 142, "iso-unicode-ibm-1268", 0, no }, /* IANA */
539 { 142, "csunicodeibm1268", 0, no }, /* IANA */
540 { 143, "iso-unicode-ibm-1276", 0, no }, /* IANA */
541 { 143, "csunicodeibm1276", 0, no }, /* IANA */
542 { 144, "iso-ir-155", 0, no }, /* IANA */
543 { 144, "iso_10367-box", 0, no }, /* IANA */
544 { 144, "csiso10367box", 0, no }, /* IANA */
545 { 145, "iso-ir-98", 0, no }, /* IANA */
546 { 145, "iso_2033-1983", 0, no }, /* IANA */
547 { 145, "e13b", 0, no }, /* IANA */
548 { 145, "csiso2033", 0, no }, /* IANA */
549 { 146, "iso-ir-37", 0, no }, /* IANA */
550 { 146, "iso_5427", 0, no }, /* IANA */
551 { 146, "csiso5427cyrillic", 0, no }, /* IANA */
552 { 147, "iso-ir-54", 0, no }, /* IANA */
553 { 147, "iso_5427:1981", 0, no }, /* IANA */
554 { 147, "iso5427cyrillic1981", 0, no }, /* IANA */
555 { 148, "iso-ir-55", 0, no }, /* IANA */
556 { 148, "iso_5428:1980", 0, no }, /* IANA */
557 { 148, "csiso5428greek", 0, no }, /* IANA */
558 { 149, "iso_646.basic:1983", 0, no }, /* IANA */
559 { 149, "ref", 0, no }, /* IANA */
560 { 149, "csiso646basic1983", 0, no }, /* IANA */
561 { 150, "iso-ir-2", 20105, no }, /* IANA */
562 { 150, "iso_646.irv:1983", 20105, no }, /* IANA */
563 { 150, "irv", 20105, no }, /* IANA */
564 { 150, "csiso2intlrefversion", 20105, no }, /* IANA */
565 { 150, "x-ia5", 20105, no }, /* MICROSOFT */
566 { 151, "iso-ir-152", 0, no }, /* IANA */
567 { 151, "iso_6937-2-25", 0, no }, /* IANA */
568 { 151, "csiso6937add", 0, no }, /* IANA */
569 { 152, "iso-ir-142", 0, no }, /* IANA */
570 { 152, "iso_6937-2-add", 0, no }, /* IANA */
571 { 152, "csisotextcomm", 0, no }, /* IANA */
572 { 153, "iso-8859-1", 28591, no }, /* IANA */
573 { 153, "iso-ir-100", 28591, no }, /* IANA */
574 { 153, "iso_8859-1:1987", 28591, no }, /* IANA */
575 { 153, "iso_8859-1", 28591, no }, /* IANA */
576 { 153, "latin1", 28591, no }, /* IANA */
577 { 153, "l1", 28591, no }, /* IANA */
578 { 153, "ibm819", 28591, no }, /* IANA */
579 { 153, "cp819", 28591, no }, /* IANA */
580 { 153, "csisolatin1", 28591, no }, /* IANA */
581 { 153, "iso8859-1", 28591, no }, /* MICROSOFT */
582 { 154, "iso-8859-2", 28592, no }, /* IANA */
583 { 154, "iso-ir-101", 28592, no }, /* IANA */
584 { 154, "iso_8859-2:1987", 28592, no }, /* IANA */
585 { 154, "iso_8859-2", 28592, no }, /* IANA */
586 { 154, "latin2", 28592, no }, /* IANA */
587 { 154, "l2", 28592, no }, /* IANA */
588 { 154, "csisolatin2", 28592, no }, /* IANA */
589 { 154, "iso8859-2", 28592, no }, /* MICROSOFT */
590 { 155, "iso-8859-3", 28593, no }, /* IANA */
591 { 155, "iso-ir-109", 28593, no }, /* IANA */
592 { 155, "iso_8859-3:1988", 28593, no }, /* IANA */
593 { 155, "iso_8859-3", 28593, no }, /* IANA */
594 { 155, "latin3", 28593, no }, /* IANA */
595 { 155, "l3", 28593, no }, /* IANA */
596 { 155, "csisolatin3", 28593, no }, /* IANA */
597 { 156, "iso-8859-4", 28594, no }, /* IANA */
598 { 156, "iso-ir-110", 28594, no }, /* IANA */
599 { 156, "iso_8859-4:1988", 28594, no }, /* IANA */
600 { 156, "iso_8859-4", 28594, no }, /* IANA */
601 { 156, "latin4", 28594, no }, /* IANA */
602 { 156, "l4", 28594, no }, /* IANA */
603 { 156, "csisolatin4", 28594, no }, /* IANA */
604 { 157, "iso-8859-5", 28595, no }, /* IANA */
605 { 157, "iso-ir-144", 28595, no }, /* IANA */
606 { 157, "iso_8859-5:1988", 28595, no }, /* IANA */
607 { 157, "iso_8859-5", 28595, no }, /* IANA */
608 { 157, "cyrillic", 28595, no }, /* IANA */
609 { 157, "csisolatincyrillic", 28595, no }, /* IANA */
610 { 158, "iso-8859-6-e", 0, no }, /* IANA */
611 { 158, "iso_8859-6-e", 0, no }, /* IANA */
612 { 158, "csiso88596e", 0, no }, /* IANA */
613 { 159, "iso-8859-6-i", 0, no }, /* IANA */
614 { 159, "iso_8859-6-i", 0, no }, /* IANA */
615 { 159, "csiso88596i", 0, no }, /* IANA */
616 { 160, "iso-8859-6", 28596, no }, /* IANA */
617 { 160, "iso-ir-127", 28596, no }, /* IANA */
618 { 160, "iso_8859-6:1987", 28596, no }, /* IANA */
619 { 160, "iso_8859-6", 28596, no }, /* IANA */
620 { 160, "ecma-114", 28596, no }, /* IANA */
621 { 160, "asmo-708", 28596, no }, /* IANA */
622 { 160, "arabic", 28596, no }, /* IANA */
623 { 160, "csisolatinarabic", 28596, no }, /* IANA */
624 { 161, "iso-8859-7", 28597, no }, /* IANA */
625 { 161, "iso-ir-126", 28597, no }, /* IANA */
626 { 161, "iso_8859-7:1987", 28597, no }, /* IANA */
627 { 161, "iso_8859-7", 28597, no }, /* IANA */
628 { 161, "elot_928", 28597, no }, /* IANA */
629 { 161, "ecma-118", 28597, no }, /* IANA */
630 { 161, "greek", 28597, no }, /* IANA */
631 { 161, "greek8", 28597, no }, /* IANA */
632 { 161, "csisolatingreek", 28597, no }, /* IANA */
633 { 162, "iso-8859-8-e", 0, no }, /* IANA */
634 { 162, "iso_8859-8-e", 0, no }, /* IANA */
635 { 162, "csiso88598e", 0, no }, /* IANA */
636 { 163, "iso-8859-8-i", 38598, no }, /* IANA */
637 { 163, "iso_8859-8-i", 38598, no }, /* IANA */
638 { 163, "csiso88598i", 38598, no }, /* IANA */
639 { 164, "iso-8859-8", 28598, no }, /* IANA */
640 { 164, "iso-ir-138", 28598, no }, /* IANA */
641 { 164, "iso_8859-8:1988", 28598, no }, /* IANA */
642 { 164, "iso_8859-8", 28598, no }, /* IANA */
643 { 164, "hebrew", 28598, no }, /* IANA */
644 { 164, "csisolatinhebrew", 28598, no }, /* IANA */
645 { 164, "logical", 28598, no }, /* MICROSOFT */
646 { 164, "visual", 28598, no }, /* MICROSOFT */
647 { 165, "iso-8859-9", 28599, no }, /* IANA */
648 { 165, "iso-ir-148", 28599, no }, /* IANA */
649 { 165, "iso_8859-9:1989", 28599, no }, /* IANA */
650 { 165, "iso_8859-9", 28599, no }, /* IANA */
651 { 165, "latin5", 28599, no }, /* IANA */
652 { 165, "l5", 28599, no }, /* IANA */
653 { 165, "csisolatin5", 28599, no }, /* IANA */
654 { 166, "iso-ir-154", 0, no }, /* IANA */
655 { 166, "iso_8859-supp", 0, no }, /* IANA */
656 { 166, "latin1-2-5", 0, no }, /* IANA */
657 { 166, "csiso8859supp", 0, no }, /* IANA */
658 { 167, "iso-ir-15", 0, no }, /* IANA */
659 { 167, "it", 0, no }, /* IANA */
660 { 167, "iso646-it", 0, no }, /* IANA */
661 { 167, "csiso15italian", 0, no }, /* IANA */
662 { 168, "iso-ir-13", 0, no }, /* IANA */
663 { 168, "jis_c6220-1969-jp", 0, no }, /* IANA */
664 { 168, "jis_c6220-1969", 0, no }, /* IANA */
665 { 168, "katakana", 0, no }, /* IANA */
666 { 168, "x0201-7", 0, no }, /* IANA */
667 { 168, "csiso13jisc6220jp", 0, no }, /* IANA */
668 { 169, "iso-ir-14", 0, no }, /* IANA */
669 { 169, "jis_c6220-1969-ro", 0, no }, /* IANA */
670 { 169, "jp", 0, no }, /* IANA */
671 { 169, "iso646-jp", 0, no }, /* IANA */
672 { 169, "csiso14jisc6220ro", 0, no }, /* IANA */
673 { 170, "iso-ir-42", 0, no }, /* IANA */
674 { 170, "jis_c6226-1978", 0, no }, /* IANA */
675 { 170, "csiso42jisc62261978", 0, no }, /* IANA */
676 { 171, "iso-ir-87", 0, no }, /* IANA */
677 { 171, "jis_c6226-1983", 0, no }, /* IANA */
678 { 171, "x0208", 0, no }, /* IANA */
679 { 171, "jis_x0208-1983", 0, no }, /* IANA */
680 { 171, "csiso87jisx0208", 0, no }, /* IANA */
681 { 172, "iso-ir-91", 0, no }, /* IANA */
682 { 172, "jis_c6229-1984-a", 0, no }, /* IANA */
683 { 172, "jp-ocr-a", 0, no }, /* IANA */
684 { 172, "csiso91jisc62291984a", 0, no }, /* IANA */
685 { 173, "iso-ir-92", 0, no }, /* IANA */
686 { 173, "jis_c6229-1984-b", 0, no }, /* IANA */
687 { 173, "iso646-jp-ocr-b", 0, no }, /* IANA */
688 { 173, "jp-ocr-b", 0, no }, /* IANA */
689 { 173, "csiso92jisc62991984b", 0, no }, /* IANA */
690 { 174, "iso-ir-93", 0, no }, /* IANA */
691 { 174, "jis_c6229-1984-b-add", 0, no }, /* IANA */
692 { 174, "jp-ocr-b-add", 0, no }, /* IANA */
693 { 174, "csiso93jis62291984badd", 0, no }, /* IANA */
694 { 175, "iso-ir-94", 0, no }, /* IANA */
695 { 175, "jis_c6229-1984-hand", 0, no }, /* IANA */
696 { 175, "jp-ocr-hand", 0, no }, /* IANA */
697 { 175, "csiso94jis62291984hand", 0, no }, /* IANA */
698 { 176, "iso-ir-95", 0, no }, /* IANA */
699 { 176, "jis_c6229-1984-hand-add", 0, no }, /* IANA */
700 { 176, "jp-ocr-hand-add", 0, no }, /* IANA */
701 { 176, "csiso95jis62291984handadd", 0, no }, /* IANA */
702 { 177, "iso-ir-96", 0, no }, /* IANA */
703 { 177, "jis_c6229-1984-kana", 0, no }, /* IANA */
704 { 177, "csiso96jisc62291984kana", 0, no }, /* IANA */
705 { 178, "jis_encoding", 0, no }, /* IANA */
706 { 178, "csjisencoding", 0, no }, /* IANA */
707 { 179, "jis_x0201", 0, no }, /* IANA */
708 { 179, "x0201", 0, no }, /* IANA */
709 { 179, "cshalfwidthkatakana", 0, no }, /* IANA */
710 { 180, "iso-ir-159", 0, no }, /* IANA */
711 { 180, "jis_x0212-1990", 0, no }, /* IANA */
712 { 180, "x0212", 0, no }, /* IANA */
713 { 180, "csiso159jisx02121990", 0, no }, /* IANA */
714 { 181, "iso-ir-141", 0, no }, /* IANA */
715 { 181, "jus_i.b1.002", 0, no }, /* IANA */
716 { 181, "iso646-yu", 0, no }, /* IANA */
717 { 181, "js", 0, no }, /* IANA */
718 { 181, "yu", 0, no }, /* IANA */
719 { 181, "csiso141jusib1002", 0, no }, /* IANA */
720 { 182, "iso-ir-147", 0, no }, /* IANA */
721 { 182, "jus_i.b1.003-mac", 0, no }, /* IANA */
722 { 182, "macedonian", 0, no }, /* IANA */
723 { 182, "csiso147macedonian", 0, no }, /* IANA */
724 { 183, "iso-ir-146", 0, no }, /* IANA */
725 { 183, "jus_i.b1.003-serb", 0, no }, /* IANA */
726 { 183, "serbian", 0, no }, /* IANA */
727 { 183, "csiso146serbian", 0, no }, /* IANA */
728 { 184, "koi8-r", 20866, no }, /* IANA */
729 { 184, "cskoi8r", 20866, no }, /* IANA */
730 { 184, "koi8", 20866, no }, /* MICROSOFT */
731 { 184, "koi", 20866, no }, /* MICROSOFT */
732 { 184, "koi8r", 20866, no }, /* MICROSOFT */
733 { 185, "koi8-u", 21866, no }, /* IANA */
734 { 185, "koi8-ru", 21866, no }, /* MICROSOFT */
735 { 186, "iso-ir-149", 949, no }, /* IANA */
736 { 186, "ks_c_5601-1987", 949, no }, /* IANA */
737 { 186, "ks_c_5601-1989", 949, no }, /* IANA */
738 { 186, "ksc_5601", 949, no }, /* IANA */
739 { 186, "korean", 949, no }, /* IANA */
740 { 186, "csksc56011987", 949, no }, /* IANA */
741 { 186, "ks_c_5601_1987", 949, no }, /* MICROSOFT */
742 { 186, "ksc5601", 949, no }, /* MICROSOFT */
743 { 186, "ks_c_5601", 949, no }, /* MICROSOFT */
744 { 187, "ksc5636", 0, no }, /* IANA */
745 { 187, "iso646-kr", 0, no }, /* IANA */
746 { 187, "csksc5636", 0, no }, /* IANA */
747 { 188, "iso-ir-19", 0, no }, /* IANA */
748 { 188, "latin-greek", 0, no }, /* IANA */
749 { 188, "csiso19latingreek", 0, no }, /* IANA */
750 { 189, "iso-ir-27", 0, no }, /* IANA */
751 { 189, "latin-greek-1", 0, no }, /* IANA */
752 { 189, "csiso27latingreek1", 0, no }, /* IANA */
753 { 190, "iso-ir-158", 0, no }, /* IANA */
754 { 190, "latin-lap", 0, no }, /* IANA */
755 { 190, "lap", 0, no }, /* IANA */
756 { 190, "csiso158lap", 0, no }, /* IANA */
757 { 191, "macintosh", 10000, no }, /* IANA */
758 { 191, "mac", 10000, no }, /* IANA */
759 { 191, "csmacintosh", 10000, no }, /* IANA */
760 { 192, "microsoft-publishing", 0, no }, /* IANA */
761 { 192, "csmicrosoftpublishing", 0, no }, /* IANA */
762 { 193, "mnem", 0, no }, /* IANA */
763 { 193, "csmnem", 0, no }, /* IANA */
764 { 194, "mnemonic", 0, no }, /* IANA */
765 { 194, "csmnemonic", 0, no }, /* IANA */
766 { 195, "iso-ir-86", 0, no }, /* IANA */
767 { 195, "msz_7795.3", 0, no }, /* IANA */
768 { 195, "iso646-hu", 0, no }, /* IANA */
769 { 195, "hu", 0, no }, /* IANA */
770 { 195, "csiso86hungarian", 0, no }, /* IANA */
771 { 196, "iso-ir-9-1", 0, no }, /* IANA */
772 { 196, "nats-dano", 0, no }, /* IANA */
773 { 196, "csnatsdano", 0, no }, /* IANA */
774 { 197, "iso-ir-9-2", 0, no }, /* IANA */
775 { 197, "nats-dano-add", 0, no }, /* IANA */
776 { 197, "csnatsdanoadd", 0, no }, /* IANA */
777 { 198, "iso-ir-8-1", 0, no }, /* IANA */
778 { 198, "nats-sefi", 0, no }, /* IANA */
779 { 198, "csnatssefi", 0, no }, /* IANA */
780 { 199, "iso-ir-8-2", 0, no }, /* IANA */
781 { 199, "nats-sefi-add", 0, no }, /* IANA */
782 { 199, "csnatssefiadd", 0, no }, /* IANA */
783 { 200, "iso-ir-151", 0, no }, /* IANA */
784 { 200, "nc_nc00-10:81", 0, no }, /* IANA */
785 { 200, "cuba", 0, no }, /* IANA */
786 { 200, "iso646-cu", 0, no }, /* IANA */
787 { 200, "csiso151cuba", 0, no }, /* IANA */
788 { 201, "iso-ir-69", 0, no }, /* IANA */
789 { 201, "nf_z_62-010", 0, no }, /* IANA */
790 { 201, "iso646-fr", 0, no }, /* IANA */
791 { 201, "fr", 0, no }, /* IANA */
792 { 201, "csiso69french", 0, no }, /* IANA */
793 { 202, "iso-ir-25", 0, no }, /* IANA */
794 { 202, "nf_z_62-010_(1973)", 0, no }, /* IANA */
795 { 202, "iso646-fr1", 0, no }, /* IANA */
796 { 202, "csiso25french", 0, no }, /* IANA */
797 { 203, "iso-ir-60", 20108, no }, /* IANA */
798 { 203, "ns_4551-1", 20108, no }, /* IANA */
799 { 203, "iso646-no", 20108, no }, /* IANA */
800 { 203, "no", 20108, no }, /* IANA */
801 { 203, "csiso60danishnorwegian", 20108, no }, /* IANA */
802 { 203, "csiso60norwegian1", 20108, no }, /* IANA */
803 { 203, "x-ia5-norwegian", 20108, no }, /* MICROSOFT */
804 { 204, "iso-ir-61", 0, no }, /* IANA */
805 { 204, "ns_4551-2", 0, no }, /* IANA */
806 { 204, "iso646-no2", 0, no }, /* IANA */
807 { 204, "no2", 0, no }, /* IANA */
808 { 204, "csiso61norwegian2", 0, no }, /* IANA */
809 { 205, "pc8-danish-norwegian", 0, no }, /* IANA */
810 { 205, "cspc8danishnorwegian", 0, no }, /* IANA */
811 { 206, "pc8-turkish", 0, no }, /* IANA */
812 { 206, "cspc8turkish", 0, no }, /* IANA */
813 { 207, "iso-ir-16", 0, no }, /* IANA */
814 { 207, "pt", 0, no }, /* IANA */
815 { 207, "iso646-pt", 0, no }, /* IANA */
816 { 207, "csiso16portuguese", 0, no }, /* IANA */
817 { 208, "iso-ir-84", 0, no }, /* IANA */
818 { 208, "pt2", 0, no }, /* IANA */
819 { 208, "iso646-pt2", 0, no }, /* IANA */
820 { 208, "csiso84portuguese2", 0, no }, /* IANA */
821 { 209, "ptcp154", 0, no }, /* IANA */
822 { 209, "csptcp154", 0, no }, /* IANA */
823 { 209, "pt154", 0, no }, /* IANA */
824 { 209, "cp154", 0, no }, /* IANA */
825 { 209, "cyrillic-asian", 0, no }, /* IANA */
826 { 210, "scsu", 0, no }, /* IANA */
827 { 211, "iso-ir-10", 20107, no }, /* IANA */
828 { 211, "sen_850200_b", 20107, no }, /* IANA */
829 { 211, "fi", 20107, no }, /* IANA */
830 { 211, "iso646-fi", 20107, no }, /* IANA */
831 { 211, "iso646-se", 20107, no }, /* IANA */
832 { 211, "se", 20107, no }, /* IANA */
833 { 211, "csiso10swedish", 20107, no }, /* IANA */
834 { 211, "x-ia5-swedish", 20107, no }, /* MICROSOFT */
835 { 212, "iso-ir-11", 0, no }, /* IANA */
836 { 212, "sen_850200_c", 0, no }, /* IANA */
837 { 212, "iso646-se2", 0, no }, /* IANA */
838 { 212, "se2", 0, no }, /* IANA */
839 { 212, "csiso11swedishfornames", 0, no }, /* IANA */
840 { 213, "shift_jis", 932, no }, /* IANA */
841 { 213, "ms_kanji", 932, no }, /* IANA */
842 { 213, "csshiftjis", 932, no }, /* IANA */
843 { 213, "shift-jis", 932, no }, /* MICROSOFT */
844 { 213, "x-ms-cp932", 932, no }, /* MICROSOFT */
845 { 213, "x-sjis", 932, no }, /* MICROSOFT */
846 { 214, "iso-ir-128", 0, no }, /* IANA */
847 { 214, "t.101-g2", 0, no }, /* IANA */
848 { 214, "csiso128t101g2", 0, no }, /* IANA */
849 { 215, "iso-ir-102", 0, no }, /* IANA */
850 { 215, "t.61-7bit", 0, no }, /* IANA */
851 { 215, "csiso102t617bit", 0, no }, /* IANA */
852 { 216, "iso-ir-103", 0, no }, /* IANA */
853 { 216, "t.61-8bit", 0, no }, /* IANA */
854 { 216, "t.61", 0, no }, /* IANA */
855 { 216, "csiso103t618bit", 0, no }, /* IANA */
856 { 217, "tis-620", 874, no }, /* IANA */
857 { 217, "windows-874", 874, no }, /* MICROSOFT */
858 { 217, "iso-8859-11", 874, no }, /* MICROSOFT */
859 { 217, "dos-874", 874, no }, /* MICROSOFT */
860 { 218, "unicode-1-1", 0, no }, /* IANA */
861 { 218, "csunicode11", 0, no }, /* IANA */
862 { 219, "unicode-1-1-utf-7", 65000, yes }, /* IANA */
863 { 219, "csunicode11utf7", 65000, yes }, /* IANA */
864 { 219, "x-unicode-2-0-utf-7", 65000, yes }, /* MICROSOFT */
865 { 220, "unknown-8bit", 0, no }, /* IANA */
866 { 220, "csunknown8bit", 0, no }, /* IANA */
867 { 221, "us-dk", 0, no }, /* IANA */
868 { 221, "csusdk", 0, no }, /* IANA */
869 { 222, "utf-16", 1200, no }, /* IANA */
870 { 222, "unicode", 1200, no }, /* MICROSOFT */
871 { 223, "utf-16be", 1201, no }, /* IANA */
872 { 223, "unicodefffe", 1201, no }, /* MICROSOFT */
873 { 224, "utf-16le", 1200, no }, /* IANA */
874 { 224, "unicode", 1200, no }, /* MICROSOFT */
875 { 225, "utf-32", 0, no }, /* IANA */
876 { 226, "utf-32be", 0, no }, /* IANA */
877 { 227, "utf-32le", 0, no }, /* IANA */
878 { 228, "utf-7", 65000, yes }, /* IANA */
879 { 228, "x-unicode-2-0-utf-7", 65000, yes }, /* MICROSOFT */
880 { 229, "utf-8", 65001, no }, /* IANA */
881 { 229, "unicode-2-0-utf-8", 65001, no }, /* MICROSOFT */
882 { 229, "unicode-1-1-utf-8", 65001, no }, /* MICROSOFT */
883 { 229, "x-unicode-2-0-utf-8", 65001, no }, /* MICROSOFT */
884 { 230, "ventura-international", 0, no }, /* IANA */
885 { 230, "csventurainternational", 0, no }, /* IANA */
886 { 231, "ventura-math", 0, no }, /* IANA */
887 { 231, "csventuramath", 0, no }, /* IANA */
888 { 232, "ventura-us", 0, no }, /* IANA */
889 { 232, "csventuraus", 0, no }, /* IANA */
890 { 233, "iso-ir-70", 0, no }, /* IANA */
891 { 233, "videotex-suppl", 0, no }, /* IANA */
892 { 233, "csiso70videotexsupp1", 0, no }, /* IANA */
893 { 234, "viqr", 0, no }, /* IANA */
894 { 234, "csviqr", 0, no }, /* IANA */
895 { 235, "viscii", 0, no }, /* IANA */
896 { 235, "csviscii", 0, no }, /* IANA */
897 { 236, "windows-1250", 1250, no }, /* IANA */
898 { 236, "x-cp1250", 1250, no }, /* MICROSOFT */
899 { 237, "windows-1251", 1251, no }, /* IANA */
900 { 237, "x-cp1251", 1251, no }, /* MICROSOFT */
901 { 238, "windows-1252", 1252, no }, /* IANA */
902 { 238, "x-ansi", 1252, no }, /* MICROSOFT */
903 { 239, "windows-1253", 1253, no }, /* IANA */
904 { 240, "windows-1254", 1254, no }, /* IANA */
905 { 241, "windows-1255", 1255, no }, /* IANA */
906 { 242, "windows-1256", 1256, no }, /* IANA */
907 { 242, "cp1256", 1256, no }, /* MICROSOFT */
908 { 243, "windows-1257", 1257, no }, /* IANA */
909 { 244, "windows-1258", 1258, no }, /* IANA */
910 { 245, "windows-31j", 932, no }, /* IANA */
911 { 245, "cswindows31j", 932, no }, /* IANA */
912 { 245, "shift-jis", 932, no }, /* MICROSOFT */
913 { 245, "x-ms-cp932", 932, no }, /* MICROSOFT */
914 { 245, "x-sjis", 932, no }, /* MICROSOFT */
915 { 246, "dos-720", 720, no }, /* MICROSOFT */
916 { 247, "euc-cn", 51936, no }, /* MICROSOFT */
917 { 248, "ibm737", 737, no }, /* MICROSOFT */
918 { 249, "johab", 1361, no }, /* MICROSOFT */
919 { 250, "x-chinese-cns", 20000, no }, /* MICROSOFT */
920 { 251, "x-chinese-eten", 20002, no }, /* MICROSOFT */
921 { 252, "x-ebcdic-cyrillicserbianbulgarian", 21025, no }, /* MICROSOFT */
922 { 253, "x-ebcdic-greekmodern", 875, no }, /* MICROSOFT */
923 { 254, "x-ebcdic-japaneseandjapaneselatin", 50939, no }, /* MICROSOFT */
924 { 255, "x-ebcdic-japaneseandkana", 50930, no }, /* MICROSOFT */
925 { 256, "x-ebcdic-japaneseanduscanada", 50931, no }, /* MICROSOFT */
926 { 257, "x-ebcdic-koreanandkoreanextended", 50933, no }, /* MICROSOFT */
927 { 258, "x-ebcdic-koreanextended", 20833, no }, /* MICROSOFT */
928 { 259, "x-ebcdic-simplifiedchinese", 50935, no }, /* MICROSOFT */
929 { 260, "x-ebcdic-traditionalchinese", 50937, no }, /* MICROSOFT */
930 { 261, "x-euc-cn", 51936, no }, /* MICROSOFT */
931 { 262, "x-europa", 29001, no }, /* MICROSOFT */
932 { 263, "x-iscii-as", 57006, no }, /* MICROSOFT */
933 { 264, "x-iscii-be", 57003, no }, /* MICROSOFT */
934 { 265, "x-iscii-de", 57002, no }, /* MICROSOFT */
935 { 266, "x-iscii-gu", 57010, no }, /* MICROSOFT */
936 { 267, "x-iscii-ka", 57008, no }, /* MICROSOFT */
937 { 268, "x-iscii-ma", 57009, no }, /* MICROSOFT */
938 { 269, "x-iscii-or", 57007, no }, /* MICROSOFT */
939 { 270, "x-iscii-pa", 57011, no }, /* MICROSOFT */
940 { 271, "x-iscii-ta", 57004, no }, /* MICROSOFT */
941 { 272, "x-iscii-te", 57005, no }, /* MICROSOFT */
942 { 273, "x-mac-arabic", 10004, no }, /* MICROSOFT */
943 { 274, "x-mac-ce", 10029, no }, /* MICROSOFT */
944 { 275, "x-mac-chinesesimp", 10008, no }, /* MICROSOFT */
945 { 276, "x-mac-chinesetrad", 10002, no }, /* MICROSOFT */
946 { 277, "x-mac-cyrillic", 10007, no }, /* MICROSOFT */
947 { 278, "x-mac-greek", 10006, no }, /* MICROSOFT */
948 { 279, "x-mac-hebrew", 10005, no }, /* MICROSOFT */
949 { 280, "x-mac-icelandic", 10079, no }, /* MICROSOFT */
950 { 281, "x-mac-japanese", 10001, no }, /* MICROSOFT */
951 { 282, "x-mac-korean", 10003, no }, /* MICROSOFT */
952 { 283, "x-mac-turkish", 10081, no }, /* MICROSOFT */
953
954 /* final entry */
955 { 0, NULL, 0, no }
956 };
957
GetEncodingIdFromName(ctmbstr name)958 uint GetEncodingIdFromName(ctmbstr name)
959 {
960 uint i;
961
962 for (i = 0; charsetInfo[i].id; ++i)
963 if (tmbstrcasecmp(name, charsetInfo[i].charset) == 0)
964 return charsetInfo[i].id;
965
966 return 0;
967 }
968
GetEncodingIdFromCodePage(uint cp)969 uint GetEncodingIdFromCodePage(uint cp)
970 {
971 uint i;
972
973 for (i = 0; charsetInfo[i].id; ++i)
974 if (cp == charsetInfo[i].codepage)
975 return charsetInfo[i].id;
976
977 return 0;
978 }
979
GetEncodingCodePageFromName(ctmbstr name)980 uint GetEncodingCodePageFromName(ctmbstr name)
981 {
982 uint i;
983
984 for (i = 0; charsetInfo[i].id; ++i)
985 if (tmbstrcasecmp(name, charsetInfo[i].charset) == 0)
986 return charsetInfo[i].codepage;
987
988 return 0;
989 }
990
GetEncodingCodePageFromId(uint id)991 uint GetEncodingCodePageFromId(uint id)
992 {
993 uint i;
994
995 for (i = 0; charsetInfo[i].id; ++i)
996 if (id == charsetInfo[i].id)
997 return charsetInfo[i].codepage;
998
999 return 0;
1000 }
1001
GetEncodingNameFromId(uint id)1002 ctmbstr GetEncodingNameFromId(uint id)
1003 {
1004 uint i;
1005
1006 for (i = 0; charsetInfo[i].id; ++i)
1007 if (id == charsetInfo[i].id)
1008 return charsetInfo[i].charset;
1009
1010 return NULL;
1011 }
1012
GetEncodingNameFromCodePage(uint cp)1013 ctmbstr GetEncodingNameFromCodePage(uint cp)
1014 {
1015 uint i;
1016
1017 for (i = 0; charsetInfo[i].id; ++i)
1018 if (cp == charsetInfo[i].codepage)
1019 return charsetInfo[i].charset;
1020
1021 return NULL;
1022 }
1023