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