diff options
-rw-r--r-- | miscutils/iconv.c | 913 |
1 files changed, 457 insertions, 456 deletions
diff --git a/miscutils/iconv.c b/miscutils/iconv.c index c3289982d..ce0b2087c 100644 --- a/miscutils/iconv.c +++ b/miscutils/iconv.c | |||
@@ -132,458 +132,448 @@ static int iso2022jp_mbtowc(csconv_t *cv, const uchar *buf, int bufsize, ushort | |||
132 | static int iso2022jp_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); | 132 | static int iso2022jp_wctomb(csconv_t *cv, ushort *wbuf, int wbufsize, uchar *buf, int bufsize); |
133 | static int iso2022jp_flush(csconv_t *cv, uchar *buf, int bufsize); | 133 | static int iso2022jp_flush(csconv_t *cv, uchar *buf, int bufsize); |
134 | 134 | ||
135 | static struct { | 135 | #define CP_ALIAS_LIST \ |
136 | int codepage; | 136 | CP_ALIAS(65001, "CP65001") \ |
137 | const char *name; | 137 | CP_ALIAS(65001, "UTF8") \ |
138 | } codepage_alias[] = { | 138 | CP_ALIAS(65001, "UTF-8") \ |
139 | {65001, "CP65001"}, | 139 | \ |
140 | {65001, "UTF8"}, | 140 | CP_ALIAS(1200, "CP1200") \ |
141 | {65001, "UTF-8"}, | 141 | CP_ALIAS(1200, "UTF16LE") \ |
142 | 142 | CP_ALIAS(1200, "UTF-16LE") \ | |
143 | {1200, "CP1200"}, | 143 | CP_ALIAS(1200, "UCS2LE") \ |
144 | {1200, "UTF16LE"}, | 144 | CP_ALIAS(1200, "UCS-2LE") \ |
145 | {1200, "UTF-16LE"}, | 145 | CP_ALIAS(1200, "UCS-2-INTERNAL") \ |
146 | {1200, "UCS2LE"}, | 146 | \ |
147 | {1200, "UCS-2LE"}, | 147 | CP_ALIAS(1201, "CP1201") \ |
148 | {1200, "UCS-2-INTERNAL"}, | 148 | CP_ALIAS(1201, "UTF16BE") \ |
149 | 149 | CP_ALIAS(1201, "UTF-16BE") \ | |
150 | {1201, "CP1201"}, | 150 | CP_ALIAS(1201, "UCS2BE") \ |
151 | {1201, "UTF16BE"}, | 151 | CP_ALIAS(1201, "UCS-2BE") \ |
152 | {1201, "UTF-16BE"}, | 152 | CP_ALIAS(1201, "unicodeFFFE") \ |
153 | {1201, "UCS2BE"}, | 153 | \ |
154 | {1201, "UCS-2BE"}, | 154 | CP_ALIAS(12000, "CP12000") \ |
155 | {1201, "unicodeFFFE"}, | 155 | CP_ALIAS(12000, "UTF32LE") \ |
156 | 156 | CP_ALIAS(12000, "UTF-32LE") \ | |
157 | {12000, "CP12000"}, | 157 | CP_ALIAS(12000, "UCS4LE") \ |
158 | {12000, "UTF32LE"}, | 158 | CP_ALIAS(12000, "UCS-4LE") \ |
159 | {12000, "UTF-32LE"}, | 159 | \ |
160 | {12000, "UCS4LE"}, | 160 | CP_ALIAS(12001, "CP12001") \ |
161 | {12000, "UCS-4LE"}, | 161 | CP_ALIAS(12001, "UTF32BE") \ |
162 | 162 | CP_ALIAS(12001, "UTF-32BE") \ | |
163 | {12001, "CP12001"}, | 163 | CP_ALIAS(12001, "UCS4BE") \ |
164 | {12001, "UTF32BE"}, | 164 | CP_ALIAS(12001, "UCS-4BE") \ |
165 | {12001, "UTF-32BE"}, | 165 | \ |
166 | {12001, "UCS4BE"}, | 166 | /* Default is little endian, because the platform is */ \ |
167 | {12001, "UCS-4BE"}, | 167 | CP_ALIAS(1200, "UTF16") \ |
168 | 168 | CP_ALIAS(1200, "UTF-16") \ | |
169 | #ifndef GLIB_COMPILATION | 169 | CP_ALIAS(1200, "UCS2") \ |
170 | /* | 170 | CP_ALIAS(1200, "UCS-2") \ |
171 | * Default is big endian. | 171 | CP_ALIAS(12000, "UTF32") \ |
172 | * See rfc2781 4.3 Interpreting text labelled as UTF-16. | 172 | CP_ALIAS(12000, "UTF-32") \ |
173 | */ | 173 | CP_ALIAS(12000, "UCS4") \ |
174 | {1201, "UTF16"}, | 174 | CP_ALIAS(12000, "UCS-4") \ |
175 | {1201, "UTF-16"}, | 175 | \ |
176 | {1201, "UCS2"}, | 176 | /* copy from libiconv `iconv -l` */ \ |
177 | {1201, "UCS-2"}, | 177 | /* !IsValidCodePage(367) */ \ |
178 | {12001, "UTF32"}, | 178 | CP_ALIAS(20127, "ANSI_X3.4-1968") \ |
179 | {12001, "UTF-32"}, | 179 | CP_ALIAS(20127, "ANSI_X3.4-1986") \ |
180 | {12001, "UCS-4"}, | 180 | CP_ALIAS(20127, "ASCII") \ |
181 | {12001, "UCS4"}, | 181 | CP_ALIAS(20127, "CP367") \ |
182 | #else | 182 | CP_ALIAS(20127, "IBM367") \ |
183 | /* Default is little endian, because the platform is */ | 183 | CP_ALIAS(20127, "ISO-IR-6") \ |
184 | {1200, "UTF16"}, | 184 | CP_ALIAS(20127, "ISO646-US") \ |
185 | {1200, "UTF-16"}, | 185 | CP_ALIAS(20127, "ISO_646.IRV:1991") \ |
186 | {1200, "UCS2"}, | 186 | CP_ALIAS(20127, "US") \ |
187 | {1200, "UCS-2"}, | 187 | CP_ALIAS(20127, "US-ASCII") \ |
188 | {12000, "UTF32"}, | 188 | CP_ALIAS(20127, "CSASCII") \ |
189 | {12000, "UTF-32"}, | 189 | \ |
190 | {12000, "UCS4"}, | 190 | /* !IsValidCodePage(819) */ \ |
191 | {12000, "UCS-4"}, | 191 | CP_ALIAS(1252, "CP819") \ |
192 | #endif | 192 | CP_ALIAS(1252, "IBM819") \ |
193 | 193 | CP_ALIAS(28591, "ISO-8859-1") \ | |
194 | /* copy from libiconv `iconv -l` */ | 194 | CP_ALIAS(28591, "ISO-IR-100") \ |
195 | /* !IsValidCodePage(367) */ | 195 | CP_ALIAS(28591, "ISO8859-1") \ |
196 | {20127, "ANSI_X3.4-1968"}, | 196 | CP_ALIAS(28591, "ISO_8859-1") \ |
197 | {20127, "ANSI_X3.4-1986"}, | 197 | CP_ALIAS(28591, "ISO_8859-1:1987") \ |
198 | {20127, "ASCII"}, | 198 | CP_ALIAS(28591, "L1") \ |
199 | {20127, "CP367"}, | 199 | CP_ALIAS(28591, "LATIN1") \ |
200 | {20127, "IBM367"}, | 200 | CP_ALIAS(28591, "CSISOLATIN1") \ |
201 | {20127, "ISO-IR-6"}, | 201 | \ |
202 | {20127, "ISO646-US"}, | 202 | CP_ALIAS(1250, "CP1250") \ |
203 | {20127, "ISO_646.IRV:1991"}, | 203 | CP_ALIAS(1250, "MS-EE") \ |
204 | {20127, "US"}, | 204 | CP_ALIAS(1250, "WINDOWS-1250") \ |
205 | {20127, "US-ASCII"}, | 205 | \ |
206 | {20127, "CSASCII"}, | 206 | CP_ALIAS(1251, "CP1251") \ |
207 | 207 | CP_ALIAS(1251, "MS-CYRL") \ | |
208 | /* !IsValidCodePage(819) */ | 208 | CP_ALIAS(1251, "WINDOWS-1251") \ |
209 | {1252, "CP819"}, | 209 | \ |
210 | {1252, "IBM819"}, | 210 | CP_ALIAS(1252, "CP1252") \ |
211 | {28591, "ISO-8859-1"}, | 211 | CP_ALIAS(1252, "MS-ANSI") \ |
212 | {28591, "ISO-IR-100"}, | 212 | CP_ALIAS(1252, "WINDOWS-1252") \ |
213 | {28591, "ISO8859-1"}, | 213 | \ |
214 | {28591, "ISO_8859-1"}, | 214 | CP_ALIAS(1253, "CP1253") \ |
215 | {28591, "ISO_8859-1:1987"}, | 215 | CP_ALIAS(1253, "MS-GREEK") \ |
216 | {28591, "L1"}, | 216 | CP_ALIAS(1253, "WINDOWS-1253") \ |
217 | {28591, "LATIN1"}, | 217 | \ |
218 | {28591, "CSISOLATIN1"}, | 218 | CP_ALIAS(1254, "CP1254") \ |
219 | 219 | CP_ALIAS(1254, "MS-TURK") \ | |
220 | {1250, "CP1250"}, | 220 | CP_ALIAS(1254, "WINDOWS-1254") \ |
221 | {1250, "MS-EE"}, | 221 | \ |
222 | {1250, "WINDOWS-1250"}, | 222 | CP_ALIAS(1255, "CP1255") \ |
223 | 223 | CP_ALIAS(1255, "MS-HEBR") \ | |
224 | {1251, "CP1251"}, | 224 | CP_ALIAS(1255, "WINDOWS-1255") \ |
225 | {1251, "MS-CYRL"}, | 225 | \ |
226 | {1251, "WINDOWS-1251"}, | 226 | CP_ALIAS(1256, "CP1256") \ |
227 | 227 | CP_ALIAS(1256, "MS-ARAB") \ | |
228 | {1252, "CP1252"}, | 228 | CP_ALIAS(1256, "WINDOWS-1256") \ |
229 | {1252, "MS-ANSI"}, | 229 | \ |
230 | {1252, "WINDOWS-1252"}, | 230 | CP_ALIAS(1257, "CP1257") \ |
231 | 231 | CP_ALIAS(1257, "WINBALTRIM") \ | |
232 | {1253, "CP1253"}, | 232 | CP_ALIAS(1257, "WINDOWS-1257") \ |
233 | {1253, "MS-GREEK"}, | 233 | \ |
234 | {1253, "WINDOWS-1253"}, | 234 | CP_ALIAS(1258, "CP1258") \ |
235 | 235 | CP_ALIAS(1258, "WINDOWS-1258") \ | |
236 | {1254, "CP1254"}, | 236 | \ |
237 | {1254, "MS-TURK"}, | 237 | CP_ALIAS(850, "850") \ |
238 | {1254, "WINDOWS-1254"}, | 238 | CP_ALIAS(850, "CP850") \ |
239 | 239 | CP_ALIAS(850, "IBM850") \ | |
240 | {1255, "CP1255"}, | 240 | CP_ALIAS(850, "CSPC850MULTILINGUAL") \ |
241 | {1255, "MS-HEBR"}, | 241 | \ |
242 | {1255, "WINDOWS-1255"}, | 242 | /* !IsValidCodePage(862) */ \ |
243 | 243 | CP_ALIAS(862, "862") \ | |
244 | {1256, "CP1256"}, | 244 | CP_ALIAS(862, "CP862") \ |
245 | {1256, "MS-ARAB"}, | 245 | CP_ALIAS(862, "IBM862") \ |
246 | {1256, "WINDOWS-1256"}, | 246 | CP_ALIAS(862, "CSPC862LATINHEBREW") \ |
247 | 247 | \ | |
248 | {1257, "CP1257"}, | 248 | CP_ALIAS(866, "866") \ |
249 | {1257, "WINBALTRIM"}, | 249 | CP_ALIAS(866, "CP866") \ |
250 | {1257, "WINDOWS-1257"}, | 250 | CP_ALIAS(866, "IBM866") \ |
251 | 251 | CP_ALIAS(866, "CSIBM866") \ | |
252 | {1258, "CP1258"}, | 252 | \ |
253 | {1258, "WINDOWS-1258"}, | 253 | /* !IsValidCodePage(154) */ \ |
254 | 254 | CP_ALIAS(154, "CP154") \ | |
255 | {850, "850"}, | 255 | CP_ALIAS(154, "CYRILLIC-ASIAN") \ |
256 | {850, "CP850"}, | 256 | CP_ALIAS(154, "PT154") \ |
257 | {850, "IBM850"}, | 257 | CP_ALIAS(154, "PTCP154") \ |
258 | {850, "CSPC850MULTILINGUAL"}, | 258 | CP_ALIAS(154, "CSPTCP154") \ |
259 | 259 | \ | |
260 | /* !IsValidCodePage(862) */ | 260 | /* !IsValidCodePage(1133) */ \ |
261 | {862, "862"}, | 261 | CP_ALIAS(1133, "CP1133") \ |
262 | {862, "CP862"}, | 262 | CP_ALIAS(1133, "IBM-CP1133") \ |
263 | {862, "IBM862"}, | 263 | \ |
264 | {862, "CSPC862LATINHEBREW"}, | 264 | CP_ALIAS(874, "CP874") \ |
265 | 265 | CP_ALIAS(874, "WINDOWS-874") \ | |
266 | {866, "866"}, | 266 | \ |
267 | {866, "CP866"}, | 267 | /* !IsValidCodePage(51932) */ \ |
268 | {866, "IBM866"}, | 268 | CP_ALIAS(51932, "CP51932") \ |
269 | {866, "CSIBM866"}, | 269 | CP_ALIAS(51932, "MS51932") \ |
270 | 270 | CP_ALIAS(51932, "WINDOWS-51932") \ | |
271 | /* !IsValidCodePage(154) */ | 271 | CP_ALIAS(51932, "EUC-JP") \ |
272 | {154, "CP154"}, | 272 | \ |
273 | {154, "CYRILLIC-ASIAN"}, | 273 | CP_ALIAS(932, "CP932") \ |
274 | {154, "PT154"}, | 274 | CP_ALIAS(932, "MS932") \ |
275 | {154, "PTCP154"}, | 275 | CP_ALIAS(932, "SHIFFT_JIS") \ |
276 | {154, "CSPTCP154"}, | 276 | CP_ALIAS(932, "SHIFFT_JIS-MS") \ |
277 | 277 | CP_ALIAS(932, "SJIS") \ | |
278 | /* !IsValidCodePage(1133) */ | 278 | CP_ALIAS(932, "SJIS-MS") \ |
279 | {1133, "CP1133"}, | 279 | CP_ALIAS(932, "SJIS-OPEN") \ |
280 | {1133, "IBM-CP1133"}, | 280 | CP_ALIAS(932, "SJIS-WIN") \ |
281 | 281 | CP_ALIAS(932, "WINDOWS-31J") \ | |
282 | {874, "CP874"}, | 282 | CP_ALIAS(932, "WINDOWS-932") \ |
283 | {874, "WINDOWS-874"}, | 283 | CP_ALIAS(932, "CSWINDOWS31J") \ |
284 | 284 | \ | |
285 | /* !IsValidCodePage(51932) */ | 285 | CP_ALIAS(50221, "CP50221") \ |
286 | {51932, "CP51932"}, | 286 | CP_ALIAS(50221, "ISO-2022-JP") \ |
287 | {51932, "MS51932"}, | 287 | CP_ALIAS(50221, "ISO-2022-JP-MS") \ |
288 | {51932, "WINDOWS-51932"}, | 288 | CP_ALIAS(50221, "ISO2022-JP") \ |
289 | {51932, "EUC-JP"}, | 289 | CP_ALIAS(50221, "ISO2022-JP-MS") \ |
290 | 290 | CP_ALIAS(50221, "MS50221") \ | |
291 | {932, "CP932"}, | 291 | CP_ALIAS(50221, "WINDOWS-50221") \ |
292 | {932, "MS932"}, | 292 | \ |
293 | {932, "SHIFFT_JIS"}, | 293 | CP_ALIAS(936, "CP936") \ |
294 | {932, "SHIFFT_JIS-MS"}, | 294 | CP_ALIAS(936, "GBK") \ |
295 | {932, "SJIS"}, | 295 | CP_ALIAS(936, "MS936") \ |
296 | {932, "SJIS-MS"}, | 296 | CP_ALIAS(936, "WINDOWS-936") \ |
297 | {932, "SJIS-OPEN"}, | 297 | \ |
298 | {932, "SJIS-WIN"}, | 298 | CP_ALIAS(950, "CP950") \ |
299 | {932, "WINDOWS-31J"}, | 299 | CP_ALIAS(950, "BIG5") \ |
300 | {932, "WINDOWS-932"}, | 300 | CP_ALIAS(950, "BIG5HKSCS") \ |
301 | {932, "CSWINDOWS31J"}, | 301 | CP_ALIAS(950, "BIG5-HKSCS") \ |
302 | 302 | \ | |
303 | {50221, "CP50221"}, | 303 | CP_ALIAS(949, "CP949") \ |
304 | {50221, "ISO-2022-JP"}, | 304 | CP_ALIAS(949, "UHC") \ |
305 | {50221, "ISO-2022-JP-MS"}, | 305 | CP_ALIAS(949, "EUC-KR") \ |
306 | {50221, "ISO2022-JP"}, | 306 | \ |
307 | {50221, "ISO2022-JP-MS"}, | 307 | CP_ALIAS(1361, "CP1361") \ |
308 | {50221, "MS50221"}, | 308 | CP_ALIAS(1361, "JOHAB") \ |
309 | {50221, "WINDOWS-50221"}, | 309 | \ |
310 | 310 | CP_ALIAS(437, "437") \ | |
311 | {936, "CP936"}, | 311 | CP_ALIAS(437, "CP437") \ |
312 | {936, "GBK"}, | 312 | CP_ALIAS(437, "IBM437") \ |
313 | {936, "MS936"}, | 313 | CP_ALIAS(437, "CSPC8CODEPAGE437") \ |
314 | {936, "WINDOWS-936"}, | 314 | \ |
315 | 315 | CP_ALIAS(737, "CP737") \ | |
316 | {950, "CP950"}, | 316 | \ |
317 | {950, "BIG5"}, | 317 | CP_ALIAS(775, "CP775") \ |
318 | {950, "BIG5HKSCS"}, | 318 | CP_ALIAS(775, "IBM775") \ |
319 | {950, "BIG5-HKSCS"}, | 319 | CP_ALIAS(775, "CSPC775BALTIC") \ |
320 | 320 | \ | |
321 | {949, "CP949"}, | 321 | CP_ALIAS(852, "852") \ |
322 | {949, "UHC"}, | 322 | CP_ALIAS(852, "CP852") \ |
323 | {949, "EUC-KR"}, | 323 | CP_ALIAS(852, "IBM852") \ |
324 | 324 | CP_ALIAS(852, "CSPCP852") \ | |
325 | {1361, "CP1361"}, | 325 | \ |
326 | {1361, "JOHAB"}, | 326 | /* !IsValidCodePage(853) */ \ |
327 | 327 | CP_ALIAS(853, "CP853") \ | |
328 | {437, "437"}, | 328 | \ |
329 | {437, "CP437"}, | 329 | CP_ALIAS(855, "855") \ |
330 | {437, "IBM437"}, | 330 | CP_ALIAS(855, "CP855") \ |
331 | {437, "CSPC8CODEPAGE437"}, | 331 | CP_ALIAS(855, "IBM855") \ |
332 | 332 | CP_ALIAS(855, "CSIBM855") \ | |
333 | {737, "CP737"}, | 333 | \ |
334 | 334 | CP_ALIAS(857, "857") \ | |
335 | {775, "CP775"}, | 335 | CP_ALIAS(857, "CP857") \ |
336 | {775, "IBM775"}, | 336 | CP_ALIAS(857, "IBM857") \ |
337 | {775, "CSPC775BALTIC"}, | 337 | CP_ALIAS(857, "CSIBM857") \ |
338 | 338 | \ | |
339 | {852, "852"}, | 339 | /* !IsValidCodePage(858) */ \ |
340 | {852, "CP852"}, | 340 | CP_ALIAS(858, "CP858") \ |
341 | {852, "IBM852"}, | 341 | \ |
342 | {852, "CSPCP852"}, | 342 | CP_ALIAS(860, "860") \ |
343 | 343 | CP_ALIAS(860, "CP860") \ | |
344 | /* !IsValidCodePage(853) */ | 344 | CP_ALIAS(860, "IBM860") \ |
345 | {853, "CP853"}, | 345 | CP_ALIAS(860, "CSIBM860") \ |
346 | 346 | \ | |
347 | {855, "855"}, | 347 | CP_ALIAS(861, "861") \ |
348 | {855, "CP855"}, | 348 | CP_ALIAS(861, "CP-IS") \ |
349 | {855, "IBM855"}, | 349 | CP_ALIAS(861, "CP861") \ |
350 | {855, "CSIBM855"}, | 350 | CP_ALIAS(861, "IBM861") \ |
351 | 351 | CP_ALIAS(861, "CSIBM861") \ | |
352 | {857, "857"}, | 352 | \ |
353 | {857, "CP857"}, | 353 | CP_ALIAS(863, "863") \ |
354 | {857, "IBM857"}, | 354 | CP_ALIAS(863, "CP863") \ |
355 | {857, "CSIBM857"}, | 355 | CP_ALIAS(863, "IBM863") \ |
356 | 356 | CP_ALIAS(863, "CSIBM863") \ | |
357 | /* !IsValidCodePage(858) */ | 357 | \ |
358 | {858, "CP858"}, | 358 | CP_ALIAS(864, "CP864") \ |
359 | 359 | CP_ALIAS(864, "IBM864") \ | |
360 | {860, "860"}, | 360 | CP_ALIAS(864, "CSIBM864") \ |
361 | {860, "CP860"}, | 361 | \ |
362 | {860, "IBM860"}, | 362 | CP_ALIAS(865, "865") \ |
363 | {860, "CSIBM860"}, | 363 | CP_ALIAS(865, "CP865") \ |
364 | 364 | CP_ALIAS(865, "IBM865") \ | |
365 | {861, "861"}, | 365 | CP_ALIAS(865, "CSIBM865") \ |
366 | {861, "CP-IS"}, | 366 | \ |
367 | {861, "CP861"}, | 367 | CP_ALIAS(869, "869") \ |
368 | {861, "IBM861"}, | 368 | CP_ALIAS(869, "CP-GR") \ |
369 | {861, "CSIBM861"}, | 369 | CP_ALIAS(869, "CP869") \ |
370 | 370 | CP_ALIAS(869, "IBM869") \ | |
371 | {863, "863"}, | 371 | CP_ALIAS(869, "CSIBM869") \ |
372 | {863, "CP863"}, | 372 | \ |
373 | {863, "IBM863"}, | 373 | /* !IsValidCodePage(1152) */ \ |
374 | {863, "CSIBM863"}, | 374 | CP_ALIAS(1125, "CP1125") \ |
375 | 375 | \ | |
376 | {864, "CP864"}, | 376 | /* \ |
377 | {864, "IBM864"}, | 377 | * Code Page Identifiers \ |
378 | {864, "CSIBM864"}, | 378 | * http://msdn2.microsoft.com/en-us/library/ms776446.aspx \ |
379 | 379 | */ \ | |
380 | {865, "865"}, | 380 | CP_ALIAS(37, "IBM037") /* IBM EBCDIC US-Canada */ \ |
381 | {865, "CP865"}, | 381 | CP_ALIAS(437, "IBM437") /* OEM United States */ \ |
382 | {865, "IBM865"}, | 382 | CP_ALIAS(500, "IBM500") /* IBM EBCDIC International */ \ |
383 | {865, "CSIBM865"}, | 383 | CP_ALIAS(708, "ASMO-708") /* Arabic (ASMO 708) */ \ |
384 | 384 | /* 709 Arabic (ASMO-449+, BCON V4) */ \ | |
385 | {869, "869"}, | 385 | /* 710 Arabic - Transparent Arabic */ \ |
386 | {869, "CP-GR"}, | 386 | CP_ALIAS(720, "DOS-720") /* Arabic (Transparent ASMO); Arabic (DOS) */ \ |
387 | {869, "CP869"}, | 387 | CP_ALIAS(737, "ibm737") /* OEM Greek (formerly 437G); Greek (DOS) */ \ |
388 | {869, "IBM869"}, | 388 | CP_ALIAS(775, "ibm775") /* OEM Baltic; Baltic (DOS) */ \ |
389 | {869, "CSIBM869"}, | 389 | CP_ALIAS(850, "ibm850") /* OEM Multilingual Latin 1; Western European (DOS) */ \ |
390 | 390 | CP_ALIAS(852, "ibm852") /* OEM Latin 2; Central European (DOS) */ \ | |
391 | /* !IsValidCodePage(1152) */ | 391 | CP_ALIAS(855, "IBM855") /* OEM Cyrillic (primarily Russian) */ \ |
392 | {1125, "CP1125"}, | 392 | CP_ALIAS(857, "ibm857") /* OEM Turkish; Turkish (DOS) */ \ |
393 | 393 | CP_ALIAS(858, "IBM00858") /* OEM Multilingual Latin 1 + Euro symbol */ \ | |
394 | /* | 394 | CP_ALIAS(860, "IBM860") /* OEM Portuguese; Portuguese (DOS) */ \ |
395 | * Code Page Identifiers | 395 | CP_ALIAS(861, "ibm861") /* OEM Icelandic; Icelandic (DOS) */ \ |
396 | * http://msdn2.microsoft.com/en-us/library/ms776446.aspx | 396 | CP_ALIAS(862, "DOS-862") /* OEM Hebrew; Hebrew (DOS) */ \ |
397 | */ | 397 | CP_ALIAS(863, "IBM863") /* OEM French Canadian; French Canadian (DOS) */ \ |
398 | {37, "IBM037"}, /* IBM EBCDIC US-Canada */ | 398 | CP_ALIAS(864, "IBM864") /* OEM Arabic; Arabic (864) */ \ |
399 | {437, "IBM437"}, /* OEM United States */ | 399 | CP_ALIAS(865, "IBM865") /* OEM Nordic; Nordic (DOS) */ \ |
400 | {500, "IBM500"}, /* IBM EBCDIC International */ | 400 | CP_ALIAS(866, "cp866") /* OEM Russian; Cyrillic (DOS) */ \ |
401 | {708, "ASMO-708"}, /* Arabic (ASMO 708) */ | 401 | CP_ALIAS(869, "ibm869") /* OEM Modern Greek; Greek, Modern (DOS) */ \ |
402 | /* 709 Arabic (ASMO-449+, BCON V4) */ | 402 | CP_ALIAS(870, "IBM870") /* IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2 */ \ |
403 | /* 710 Arabic - Transparent Arabic */ | 403 | CP_ALIAS(874, "windows-874") /* ANSI/OEM Thai (same as 28605, ISO 8859-15); Thai (Windows) */ \ |
404 | {720, "DOS-720"}, /* Arabic (Transparent ASMO); Arabic (DOS) */ | 404 | CP_ALIAS(875, "cp875") /* IBM EBCDIC Greek Modern */ \ |
405 | {737, "ibm737"}, /* OEM Greek (formerly 437G); Greek (DOS) */ | 405 | CP_ALIAS(932, "shift_jis") /* ANSI/OEM Japanese; Japanese (Shift-JIS) */ \ |
406 | {775, "ibm775"}, /* OEM Baltic; Baltic (DOS) */ | 406 | CP_ALIAS(932, "shift-jis") /* alternative name for it */ \ |
407 | {850, "ibm850"}, /* OEM Multilingual Latin 1; Western European (DOS) */ | 407 | CP_ALIAS(936, "gb2312") /* ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312) */ \ |
408 | {852, "ibm852"}, /* OEM Latin 2; Central European (DOS) */ | 408 | CP_ALIAS(949, "ks_c_5601-1987") /* ANSI/OEM Korean (Unified Hangul Code) */ \ |
409 | {855, "IBM855"}, /* OEM Cyrillic (primarily Russian) */ | 409 | CP_ALIAS(950, "big5") /* ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5) */ \ |
410 | {857, "ibm857"}, /* OEM Turkish; Turkish (DOS) */ | 410 | CP_ALIAS(950, "big5hkscs") /* ANSI/OEM Traditional Chinese (Hong Kong SAR); Chinese Traditional (Big5-HKSCS) */ \ |
411 | {858, "IBM00858"}, /* OEM Multilingual Latin 1 + Euro symbol */ | 411 | CP_ALIAS(950, "big5-hkscs") /* alternative name for it */ \ |
412 | {860, "IBM860"}, /* OEM Portuguese; Portuguese (DOS) */ | 412 | CP_ALIAS(1026, "IBM1026") /* IBM EBCDIC Turkish (Latin 5) */ \ |
413 | {861, "ibm861"}, /* OEM Icelandic; Icelandic (DOS) */ | 413 | CP_ALIAS(1047, "IBM01047") /* IBM EBCDIC Latin 1/Open System */ \ |
414 | {862, "DOS-862"}, /* OEM Hebrew; Hebrew (DOS) */ | 414 | CP_ALIAS(1140, "IBM01140") /* IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro) */ \ |
415 | {863, "IBM863"}, /* OEM French Canadian; French Canadian (DOS) */ | 415 | CP_ALIAS(1141, "IBM01141") /* IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro) */ \ |
416 | {864, "IBM864"}, /* OEM Arabic; Arabic (864) */ | 416 | CP_ALIAS(1142, "IBM01142") /* IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro) */ \ |
417 | {865, "IBM865"}, /* OEM Nordic; Nordic (DOS) */ | 417 | CP_ALIAS(1143, "IBM01143") /* IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro) */ \ |
418 | {866, "cp866"}, /* OEM Russian; Cyrillic (DOS) */ | 418 | CP_ALIAS(1144, "IBM01144") /* IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro) */ \ |
419 | {869, "ibm869"}, /* OEM Modern Greek; Greek, Modern (DOS) */ | 419 | CP_ALIAS(1145, "IBM01145") /* IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro) */ \ |
420 | {870, "IBM870"}, /* IBM EBCDIC Multilingual/ROECE (Latin 2); IBM EBCDIC Multilingual Latin 2 */ | 420 | CP_ALIAS(1146, "IBM01146") /* IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro) */ \ |
421 | {874, "windows-874"}, /* ANSI/OEM Thai (same as 28605, ISO 8859-15); Thai (Windows) */ | 421 | CP_ALIAS(1147, "IBM01147") /* IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro) */ \ |
422 | {875, "cp875"}, /* IBM EBCDIC Greek Modern */ | 422 | CP_ALIAS(1148, "IBM01148") /* IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro) */ \ |
423 | {932, "shift_jis"}, /* ANSI/OEM Japanese; Japanese (Shift-JIS) */ | 423 | CP_ALIAS(1149, "IBM01149") /* IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro) */ \ |
424 | {932, "shift-jis"}, /* alternative name for it */ | 424 | CP_ALIAS(1250, "windows-1250") /* ANSI Central European; Central European (Windows) */ \ |
425 | {936, "gb2312"}, /* ANSI/OEM Simplified Chinese (PRC, Singapore); Chinese Simplified (GB2312) */ | 425 | CP_ALIAS(1251, "windows-1251") /* ANSI Cyrillic; Cyrillic (Windows) */ \ |
426 | {949, "ks_c_5601-1987"}, /* ANSI/OEM Korean (Unified Hangul Code) */ | 426 | CP_ALIAS(1252, "windows-1252") /* ANSI Latin 1; Western European (Windows) */ \ |
427 | {950, "big5"}, /* ANSI/OEM Traditional Chinese (Taiwan; Hong Kong SAR, PRC); Chinese Traditional (Big5) */ | 427 | CP_ALIAS(1253, "windows-1253") /* ANSI Greek; Greek (Windows) */ \ |
428 | {950, "big5hkscs"}, /* ANSI/OEM Traditional Chinese (Hong Kong SAR); Chinese Traditional (Big5-HKSCS) */ | 428 | CP_ALIAS(1254, "windows-1254") /* ANSI Turkish; Turkish (Windows) */ \ |
429 | {950, "big5-hkscs"}, /* alternative name for it */ | 429 | CP_ALIAS(1255, "windows-1255") /* ANSI Hebrew; Hebrew (Windows) */ \ |
430 | {1026, "IBM1026"}, /* IBM EBCDIC Turkish (Latin 5) */ | 430 | CP_ALIAS(1256, "windows-1256") /* ANSI Arabic; Arabic (Windows) */ \ |
431 | {1047, "IBM01047"}, /* IBM EBCDIC Latin 1/Open System */ | 431 | CP_ALIAS(1257, "windows-1257") /* ANSI Baltic; Baltic (Windows) */ \ |
432 | {1140, "IBM01140"}, /* IBM EBCDIC US-Canada (037 + Euro symbol); IBM EBCDIC (US-Canada-Euro) */ | 432 | CP_ALIAS(1258, "windows-1258") /* ANSI/OEM Vietnamese; Vietnamese (Windows) */ \ |
433 | {1141, "IBM01141"}, /* IBM EBCDIC Germany (20273 + Euro symbol); IBM EBCDIC (Germany-Euro) */ | 433 | CP_ALIAS(1361, "Johab") /* Korean (Johab) */ \ |
434 | {1142, "IBM01142"}, /* IBM EBCDIC Denmark-Norway (20277 + Euro symbol); IBM EBCDIC (Denmark-Norway-Euro) */ | 434 | CP_ALIAS(10000, "macintosh") /* MAC Roman; Western European (Mac) */ \ |
435 | {1143, "IBM01143"}, /* IBM EBCDIC Finland-Sweden (20278 + Euro symbol); IBM EBCDIC (Finland-Sweden-Euro) */ | 435 | CP_ALIAS(10001, "x-mac-japanese") /* Japanese (Mac) */ \ |
436 | {1144, "IBM01144"}, /* IBM EBCDIC Italy (20280 + Euro symbol); IBM EBCDIC (Italy-Euro) */ | 436 | CP_ALIAS(10002, "x-mac-chinesetrad") /* MAC Traditional Chinese (Big5); Chinese Traditional (Mac) */ \ |
437 | {1145, "IBM01145"}, /* IBM EBCDIC Latin America-Spain (20284 + Euro symbol); IBM EBCDIC (Spain-Euro) */ | 437 | CP_ALIAS(10003, "x-mac-korean") /* Korean (Mac) */ \ |
438 | {1146, "IBM01146"}, /* IBM EBCDIC United Kingdom (20285 + Euro symbol); IBM EBCDIC (UK-Euro) */ | 438 | CP_ALIAS(10004, "x-mac-arabic") /* Arabic (Mac) */ \ |
439 | {1147, "IBM01147"}, /* IBM EBCDIC France (20297 + Euro symbol); IBM EBCDIC (France-Euro) */ | 439 | CP_ALIAS(10005, "x-mac-hebrew") /* Hebrew (Mac) */ \ |
440 | {1148, "IBM01148"}, /* IBM EBCDIC International (500 + Euro symbol); IBM EBCDIC (International-Euro) */ | 440 | CP_ALIAS(10006, "x-mac-greek") /* Greek (Mac) */ \ |
441 | {1149, "IBM01149"}, /* IBM EBCDIC Icelandic (20871 + Euro symbol); IBM EBCDIC (Icelandic-Euro) */ | 441 | CP_ALIAS(10007, "x-mac-cyrillic") /* Cyrillic (Mac) */ \ |
442 | {1250, "windows-1250"}, /* ANSI Central European; Central European (Windows) */ | 442 | CP_ALIAS(10008, "x-mac-chinesesimp") /* MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac) */ \ |
443 | {1251, "windows-1251"}, /* ANSI Cyrillic; Cyrillic (Windows) */ | 443 | CP_ALIAS(10010, "x-mac-romanian") /* Romanian (Mac) */ \ |
444 | {1252, "windows-1252"}, /* ANSI Latin 1; Western European (Windows) */ | 444 | CP_ALIAS(10017, "x-mac-ukrainian") /* Ukrainian (Mac) */ \ |
445 | {1253, "windows-1253"}, /* ANSI Greek; Greek (Windows) */ | 445 | CP_ALIAS(10021, "x-mac-thai") /* Thai (Mac) */ \ |
446 | {1254, "windows-1254"}, /* ANSI Turkish; Turkish (Windows) */ | 446 | CP_ALIAS(10029, "x-mac-ce") /* MAC Latin 2; Central European (Mac) */ \ |
447 | {1255, "windows-1255"}, /* ANSI Hebrew; Hebrew (Windows) */ | 447 | CP_ALIAS(10079, "x-mac-icelandic") /* Icelandic (Mac) */ \ |
448 | {1256, "windows-1256"}, /* ANSI Arabic; Arabic (Windows) */ | 448 | CP_ALIAS(10081, "x-mac-turkish") /* Turkish (Mac) */ \ |
449 | {1257, "windows-1257"}, /* ANSI Baltic; Baltic (Windows) */ | 449 | CP_ALIAS(10082, "x-mac-croatian") /* Croatian (Mac) */ \ |
450 | {1258, "windows-1258"}, /* ANSI/OEM Vietnamese; Vietnamese (Windows) */ | 450 | CP_ALIAS(20000, "x-Chinese_CNS") /* CNS Taiwan; Chinese Traditional (CNS) */ \ |
451 | {1361, "Johab"}, /* Korean (Johab) */ | 451 | CP_ALIAS(20001, "x-cp20001") /* TCA Taiwan */ \ |
452 | {10000, "macintosh"}, /* MAC Roman; Western European (Mac) */ | 452 | CP_ALIAS(20002, "x_Chinese-Eten") /* Eten Taiwan; Chinese Traditional (Eten) */ \ |
453 | {10001, "x-mac-japanese"}, /* Japanese (Mac) */ | 453 | CP_ALIAS(20003, "x-cp20003") /* IBM5550 Taiwan */ \ |
454 | {10002, "x-mac-chinesetrad"}, /* MAC Traditional Chinese (Big5); Chinese Traditional (Mac) */ | 454 | CP_ALIAS(20004, "x-cp20004") /* TeleText Taiwan */ \ |
455 | {10003, "x-mac-korean"}, /* Korean (Mac) */ | 455 | CP_ALIAS(20005, "x-cp20005") /* Wang Taiwan */ \ |
456 | {10004, "x-mac-arabic"}, /* Arabic (Mac) */ | 456 | CP_ALIAS(20105, "x-IA5") /* IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5) */ \ |
457 | {10005, "x-mac-hebrew"}, /* Hebrew (Mac) */ | 457 | CP_ALIAS(20106, "x-IA5-German") /* IA5 German (7-bit) */ \ |
458 | {10006, "x-mac-greek"}, /* Greek (Mac) */ | 458 | CP_ALIAS(20107, "x-IA5-Swedish") /* IA5 Swedish (7-bit) */ \ |
459 | {10007, "x-mac-cyrillic"}, /* Cyrillic (Mac) */ | 459 | CP_ALIAS(20108, "x-IA5-Norwegian") /* IA5 Norwegian (7-bit) */ \ |
460 | {10008, "x-mac-chinesesimp"}, /* MAC Simplified Chinese (GB 2312); Chinese Simplified (Mac) */ | 460 | CP_ALIAS(20127, "us-ascii") /* US-ASCII (7-bit) */ \ |
461 | {10010, "x-mac-romanian"}, /* Romanian (Mac) */ | 461 | CP_ALIAS(20261, "x-cp20261") /* T.61 */ \ |
462 | {10017, "x-mac-ukrainian"}, /* Ukrainian (Mac) */ | 462 | CP_ALIAS(20269, "x-cp20269") /* ISO 6937 Non-Spacing Accent */ \ |
463 | {10021, "x-mac-thai"}, /* Thai (Mac) */ | 463 | CP_ALIAS(20273, "IBM273") /* IBM EBCDIC Germany */ \ |
464 | {10029, "x-mac-ce"}, /* MAC Latin 2; Central European (Mac) */ | 464 | CP_ALIAS(20277, "IBM277") /* IBM EBCDIC Denmark-Norway */ \ |
465 | {10079, "x-mac-icelandic"}, /* Icelandic (Mac) */ | 465 | CP_ALIAS(20278, "IBM278") /* IBM EBCDIC Finland-Sweden */ \ |
466 | {10081, "x-mac-turkish"}, /* Turkish (Mac) */ | 466 | CP_ALIAS(20280, "IBM280") /* IBM EBCDIC Italy */ \ |
467 | {10082, "x-mac-croatian"}, /* Croatian (Mac) */ | 467 | CP_ALIAS(20284, "IBM284") /* IBM EBCDIC Latin America-Spain */ \ |
468 | {20000, "x-Chinese_CNS"}, /* CNS Taiwan; Chinese Traditional (CNS) */ | 468 | CP_ALIAS(20285, "IBM285") /* IBM EBCDIC United Kingdom */ \ |
469 | {20001, "x-cp20001"}, /* TCA Taiwan */ | 469 | CP_ALIAS(20290, "IBM290") /* IBM EBCDIC Japanese Katakana Extended */ \ |
470 | {20002, "x_Chinese-Eten"}, /* Eten Taiwan; Chinese Traditional (Eten) */ | 470 | CP_ALIAS(20297, "IBM297") /* IBM EBCDIC France */ \ |
471 | {20003, "x-cp20003"}, /* IBM5550 Taiwan */ | 471 | CP_ALIAS(20420, "IBM420") /* IBM EBCDIC Arabic */ \ |
472 | {20004, "x-cp20004"}, /* TeleText Taiwan */ | 472 | CP_ALIAS(20423, "IBM423") /* IBM EBCDIC Greek */ \ |
473 | {20005, "x-cp20005"}, /* Wang Taiwan */ | 473 | CP_ALIAS(20424, "IBM424") /* IBM EBCDIC Hebrew */ \ |
474 | {20105, "x-IA5"}, /* IA5 (IRV International Alphabet No. 5, 7-bit); Western European (IA5) */ | 474 | CP_ALIAS(20833, "x-EBCDIC-KoreanExtended") /* IBM EBCDIC Korean Extended */ \ |
475 | {20106, "x-IA5-German"}, /* IA5 German (7-bit) */ | 475 | CP_ALIAS(20838, "IBM-Thai") /* IBM EBCDIC Thai */ \ |
476 | {20107, "x-IA5-Swedish"}, /* IA5 Swedish (7-bit) */ | 476 | CP_ALIAS(20866, "koi8-r") /* Russian (KOI8-R); Cyrillic (KOI8-R) */ \ |
477 | {20108, "x-IA5-Norwegian"}, /* IA5 Norwegian (7-bit) */ | 477 | CP_ALIAS(20871, "IBM871") /* IBM EBCDIC Icelandic */ \ |
478 | {20127, "us-ascii"}, /* US-ASCII (7-bit) */ | 478 | CP_ALIAS(20880, "IBM880") /* IBM EBCDIC Cyrillic Russian */ \ |
479 | {20261, "x-cp20261"}, /* T.61 */ | 479 | CP_ALIAS(20905, "IBM905") /* IBM EBCDIC Turkish */ \ |
480 | {20269, "x-cp20269"}, /* ISO 6937 Non-Spacing Accent */ | 480 | CP_ALIAS(20924, "IBM00924") /* IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) */ \ |
481 | {20273, "IBM273"}, /* IBM EBCDIC Germany */ | 481 | CP_ALIAS(20932, "EUC-JP") /* Japanese (JIS 0208-1990 and 0121-1990) */ \ |
482 | {20277, "IBM277"}, /* IBM EBCDIC Denmark-Norway */ | 482 | CP_ALIAS(20936, "x-cp20936") /* Simplified Chinese (GB2312); Chinese Simplified (GB2312-80) */ \ |
483 | {20278, "IBM278"}, /* IBM EBCDIC Finland-Sweden */ | 483 | CP_ALIAS(20949, "x-cp20949") /* Korean Wansung */ \ |
484 | {20280, "IBM280"}, /* IBM EBCDIC Italy */ | 484 | CP_ALIAS(21025, "cp1025") /* IBM EBCDIC Cyrillic Serbian-Bulgarian */ \ |
485 | {20284, "IBM284"}, /* IBM EBCDIC Latin America-Spain */ | 485 | /* 21027 (deprecated) */ \ |
486 | {20285, "IBM285"}, /* IBM EBCDIC United Kingdom */ | 486 | CP_ALIAS(21866, "koi8-u") /* Ukrainian (KOI8-U); Cyrillic (KOI8-U) */ \ |
487 | {20290, "IBM290"}, /* IBM EBCDIC Japanese Katakana Extended */ | 487 | CP_ALIAS(28591, "iso-8859-1") /* ISO 8859-1 Latin 1; Western European (ISO) */ \ |
488 | {20297, "IBM297"}, /* IBM EBCDIC France */ | 488 | CP_ALIAS(28591, "iso8859-1") /* ISO 8859-1 Latin 1; Western European (ISO) */ \ |
489 | {20420, "IBM420"}, /* IBM EBCDIC Arabic */ | 489 | CP_ALIAS(28591, "iso_8859-1") \ |
490 | {20423, "IBM423"}, /* IBM EBCDIC Greek */ | 490 | CP_ALIAS(28591, "iso_8859_1") \ |
491 | {20424, "IBM424"}, /* IBM EBCDIC Hebrew */ | 491 | CP_ALIAS(28592, "iso-8859-2") /* ISO 8859-2 Central European; Central European (ISO) */ \ |
492 | {20833, "x-EBCDIC-KoreanExtended"}, /* IBM EBCDIC Korean Extended */ | 492 | CP_ALIAS(28592, "iso8859-2") /* ISO 8859-2 Central European; Central European (ISO) */ \ |
493 | {20838, "IBM-Thai"}, /* IBM EBCDIC Thai */ | 493 | CP_ALIAS(28592, "iso_8859-2") \ |
494 | {20866, "koi8-r"}, /* Russian (KOI8-R); Cyrillic (KOI8-R) */ | 494 | CP_ALIAS(28592, "iso_8859_2") \ |
495 | {20871, "IBM871"}, /* IBM EBCDIC Icelandic */ | 495 | CP_ALIAS(28593, "iso-8859-3") /* ISO 8859-3 Latin 3 */ \ |
496 | {20880, "IBM880"}, /* IBM EBCDIC Cyrillic Russian */ | 496 | CP_ALIAS(28593, "iso8859-3") /* ISO 8859-3 Latin 3 */ \ |
497 | {20905, "IBM905"}, /* IBM EBCDIC Turkish */ | 497 | CP_ALIAS(28593, "iso_8859-3") \ |
498 | {20924, "IBM00924"}, /* IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) */ | 498 | CP_ALIAS(28593, "iso_8859_3") \ |
499 | {20932, "EUC-JP"}, /* Japanese (JIS 0208-1990 and 0121-1990) */ | 499 | CP_ALIAS(28594, "iso-8859-4") /* ISO 8859-4 Baltic */ \ |
500 | {20936, "x-cp20936"}, /* Simplified Chinese (GB2312); Chinese Simplified (GB2312-80) */ | 500 | CP_ALIAS(28594, "iso8859-4") /* ISO 8859-4 Baltic */ \ |
501 | {20949, "x-cp20949"}, /* Korean Wansung */ | 501 | CP_ALIAS(28594, "iso_8859-4") \ |
502 | {21025, "cp1025"}, /* IBM EBCDIC Cyrillic Serbian-Bulgarian */ | 502 | CP_ALIAS(28594, "iso_8859_4") \ |
503 | /* 21027 (deprecated) */ | 503 | CP_ALIAS(28595, "iso-8859-5") /* ISO 8859-5 Cyrillic */ \ |
504 | {21866, "koi8-u"}, /* Ukrainian (KOI8-U); Cyrillic (KOI8-U) */ | 504 | CP_ALIAS(28595, "iso8859-5") /* ISO 8859-5 Cyrillic */ \ |
505 | {28591, "iso-8859-1"}, /* ISO 8859-1 Latin 1; Western European (ISO) */ | 505 | CP_ALIAS(28595, "iso_8859-5") \ |
506 | {28591, "iso8859-1"}, /* ISO 8859-1 Latin 1; Western European (ISO) */ | 506 | CP_ALIAS(28595, "iso_8859_5") \ |
507 | {28591, "iso_8859-1"}, | 507 | CP_ALIAS(28596, "iso-8859-6") /* ISO 8859-6 Arabic */ \ |
508 | {28591, "iso_8859_1"}, | 508 | CP_ALIAS(28596, "iso8859-6") /* ISO 8859-6 Arabic */ \ |
509 | {28592, "iso-8859-2"}, /* ISO 8859-2 Central European; Central European (ISO) */ | 509 | CP_ALIAS(28596, "iso_8859-6") \ |
510 | {28592, "iso8859-2"}, /* ISO 8859-2 Central European; Central European (ISO) */ | 510 | CP_ALIAS(28596, "iso_8859_6") \ |
511 | {28592, "iso_8859-2"}, | 511 | CP_ALIAS(28597, "iso-8859-7") /* ISO 8859-7 Greek */ \ |
512 | {28592, "iso_8859_2"}, | 512 | CP_ALIAS(28597, "iso8859-7") /* ISO 8859-7 Greek */ \ |
513 | {28593, "iso-8859-3"}, /* ISO 8859-3 Latin 3 */ | 513 | CP_ALIAS(28597, "iso_8859-7") \ |
514 | {28593, "iso8859-3"}, /* ISO 8859-3 Latin 3 */ | 514 | CP_ALIAS(28597, "iso_8859_7") \ |
515 | {28593, "iso_8859-3"}, | 515 | CP_ALIAS(28598, "iso-8859-8") /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ \ |
516 | {28593, "iso_8859_3"}, | 516 | CP_ALIAS(28598, "iso8859-8") /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ \ |
517 | {28594, "iso-8859-4"}, /* ISO 8859-4 Baltic */ | 517 | CP_ALIAS(28598, "iso_8859-8") \ |
518 | {28594, "iso8859-4"}, /* ISO 8859-4 Baltic */ | 518 | CP_ALIAS(28598, "iso_8859_8") \ |
519 | {28594, "iso_8859-4"}, | 519 | CP_ALIAS(28599, "iso-8859-9") /* ISO 8859-9 Turkish */ \ |
520 | {28594, "iso_8859_4"}, | 520 | CP_ALIAS(28599, "iso8859-9") /* ISO 8859-9 Turkish */ \ |
521 | {28595, "iso-8859-5"}, /* ISO 8859-5 Cyrillic */ | 521 | CP_ALIAS(28599, "iso_8859-9") \ |
522 | {28595, "iso8859-5"}, /* ISO 8859-5 Cyrillic */ | 522 | CP_ALIAS(28599, "iso_8859_9") \ |
523 | {28595, "iso_8859-5"}, | 523 | CP_ALIAS(28603, "iso-8859-13") /* ISO 8859-13 Estonian */ \ |
524 | {28595, "iso_8859_5"}, | 524 | CP_ALIAS(28603, "iso8859-13") /* ISO 8859-13 Estonian */ \ |
525 | {28596, "iso-8859-6"}, /* ISO 8859-6 Arabic */ | 525 | CP_ALIAS(28603, "iso_8859-13") \ |
526 | {28596, "iso8859-6"}, /* ISO 8859-6 Arabic */ | 526 | CP_ALIAS(28603, "iso_8859_13") \ |
527 | {28596, "iso_8859-6"}, | 527 | CP_ALIAS(28605, "iso-8859-15") /* ISO 8859-15 Latin 9 */ \ |
528 | {28596, "iso_8859_6"}, | 528 | CP_ALIAS(28605, "iso8859-15") /* ISO 8859-15 Latin 9 */ \ |
529 | {28597, "iso-8859-7"}, /* ISO 8859-7 Greek */ | 529 | CP_ALIAS(28605, "iso_8859-15") \ |
530 | {28597, "iso8859-7"}, /* ISO 8859-7 Greek */ | 530 | CP_ALIAS(28605, "iso_8859_15") \ |
531 | {28597, "iso_8859-7"}, | 531 | CP_ALIAS(29001, "x-Europa") /* Europa 3 */ \ |
532 | {28597, "iso_8859_7"}, | 532 | CP_ALIAS(38598, "iso-8859-8-i") /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ \ |
533 | {28598, "iso-8859-8"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ | 533 | CP_ALIAS(38598, "iso8859-8-i") /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ \ |
534 | {28598, "iso8859-8"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Visual) */ | 534 | CP_ALIAS(38598, "iso_8859-8-i") \ |
535 | {28598, "iso_8859-8"}, | 535 | CP_ALIAS(38598, "iso_8859_8-i") \ |
536 | {28598, "iso_8859_8"}, | 536 | CP_ALIAS(50220, "iso-2022-jp") /* ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) */ \ |
537 | {28599, "iso-8859-9"}, /* ISO 8859-9 Turkish */ | 537 | CP_ALIAS(50221, "csISO2022JP") /* ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana) */ \ |
538 | {28599, "iso8859-9"}, /* ISO 8859-9 Turkish */ | 538 | CP_ALIAS(50222, "iso-2022-jp") /* ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) */ \ |
539 | {28599, "iso_8859-9"}, | 539 | CP_ALIAS(50225, "iso-2022-kr") /* ISO 2022 Korean */ \ |
540 | {28599, "iso_8859_9"}, | 540 | CP_ALIAS(50225, "iso2022-kr") /* ISO 2022 Korean */ \ |
541 | {28603, "iso-8859-13"}, /* ISO 8859-13 Estonian */ | 541 | CP_ALIAS(50227, "x-cp50227") /* ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022) */ \ |
542 | {28603, "iso8859-13"}, /* ISO 8859-13 Estonian */ | 542 | /* 50229 ISO 2022 Traditional Chinese */ \ |
543 | {28603, "iso_8859-13"}, | 543 | /* 50930 EBCDIC Japanese (Katakana) Extended */ \ |
544 | {28603, "iso_8859_13"}, | 544 | /* 50931 EBCDIC US-Canada and Japanese */ \ |
545 | {28605, "iso-8859-15"}, /* ISO 8859-15 Latin 9 */ | 545 | /* 50933 EBCDIC Korean Extended and Korean */ \ |
546 | {28605, "iso8859-15"}, /* ISO 8859-15 Latin 9 */ | 546 | /* 50935 EBCDIC Simplified Chinese Extended and Simplified Chinese */ \ |
547 | {28605, "iso_8859-15"}, | 547 | /* 50936 EBCDIC Simplified Chinese */ \ |
548 | {28605, "iso_8859_15"}, | 548 | /* 50937 EBCDIC US-Canada and Traditional Chinese */ \ |
549 | {29001, "x-Europa"}, /* Europa 3 */ | 549 | /* 50939 EBCDIC Japanese (Latin) Extended and Japanese */ \ |
550 | {38598, "iso-8859-8-i"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ | 550 | CP_ALIAS(51932, "euc-jp") /* EUC Japanese */ \ |
551 | {38598, "iso8859-8-i"}, /* ISO 8859-8 Hebrew; Hebrew (ISO-Logical) */ | 551 | CP_ALIAS(51936, "EUC-CN") /* EUC Simplified Chinese; Chinese Simplified (EUC) */ \ |
552 | {38598, "iso_8859-8-i"}, | 552 | CP_ALIAS(51949, "euc-kr") /* EUC Korean */ \ |
553 | {38598, "iso_8859_8-i"}, | 553 | /* 51950 EUC Traditional Chinese */ \ |
554 | {50220, "iso-2022-jp"}, /* ISO 2022 Japanese with no halfwidth Katakana; Japanese (JIS) */ | 554 | CP_ALIAS(52936, "hz-gb-2312") /* HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ) */ \ |
555 | {50221, "csISO2022JP"}, /* ISO 2022 Japanese with halfwidth Katakana; Japanese (JIS-Allow 1 byte Kana) */ | 555 | CP_ALIAS(54936, "GB18030") /* Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030) */ \ |
556 | {50222, "iso-2022-jp"}, /* ISO 2022 Japanese JIS X 0201-1989; Japanese (JIS-Allow 1 byte Kana - SO/SI) */ | 556 | CP_ALIAS(57002, "x-iscii-de") /* ISCII Devanagari */ \ |
557 | {50225, "iso-2022-kr"}, /* ISO 2022 Korean */ | 557 | CP_ALIAS(57003, "x-iscii-be") /* ISCII Bengali */ \ |
558 | {50225, "iso2022-kr"}, /* ISO 2022 Korean */ | 558 | CP_ALIAS(57004, "x-iscii-ta") /* ISCII Tamil */ \ |
559 | {50227, "x-cp50227"}, /* ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022) */ | 559 | CP_ALIAS(57005, "x-iscii-te") /* ISCII Telugu */ \ |
560 | /* 50229 ISO 2022 Traditional Chinese */ | 560 | CP_ALIAS(57006, "x-iscii-as") /* ISCII Assamese */ \ |
561 | /* 50930 EBCDIC Japanese (Katakana) Extended */ | 561 | CP_ALIAS(57007, "x-iscii-or") /* ISCII Oriya */ \ |
562 | /* 50931 EBCDIC US-Canada and Japanese */ | 562 | CP_ALIAS(57008, "x-iscii-ka") /* ISCII Kannada */ \ |
563 | /* 50933 EBCDIC Korean Extended and Korean */ | 563 | CP_ALIAS(57009, "x-iscii-ma") /* ISCII Malayalam */ \ |
564 | /* 50935 EBCDIC Simplified Chinese Extended and Simplified Chinese */ | 564 | CP_ALIAS(57010, "x-iscii-gu") /* ISCII Gujarati */ \ |
565 | /* 50936 EBCDIC Simplified Chinese */ | 565 | CP_ALIAS(57011, "x-iscii-pa") /* ISCII Punjabi */ |
566 | /* 50937 EBCDIC US-Canada and Traditional Chinese */ | 566 | |
567 | /* 50939 EBCDIC Japanese (Latin) Extended and Japanese */ | 567 | #define CP_ALIAS(codepage, alias) codepage, |
568 | {51932, "euc-jp"}, /* EUC Japanese */ | 568 | static const int cp_codepage[] = { |
569 | {51936, "EUC-CN"}, /* EUC Simplified Chinese; Chinese Simplified (EUC) */ | 569 | CP_ALIAS_LIST |
570 | {51949, "euc-kr"}, /* EUC Korean */ | ||
571 | /* 51950 EUC Traditional Chinese */ | ||
572 | {52936, "hz-gb-2312"}, /* HZ-GB2312 Simplified Chinese; Chinese Simplified (HZ) */ | ||
573 | {54936, "GB18030"}, /* Windows XP and later: GB18030 Simplified Chinese (4 byte); Chinese Simplified (GB18030) */ | ||
574 | {57002, "x-iscii-de"}, /* ISCII Devanagari */ | ||
575 | {57003, "x-iscii-be"}, /* ISCII Bengali */ | ||
576 | {57004, "x-iscii-ta"}, /* ISCII Tamil */ | ||
577 | {57005, "x-iscii-te"}, /* ISCII Telugu */ | ||
578 | {57006, "x-iscii-as"}, /* ISCII Assamese */ | ||
579 | {57007, "x-iscii-or"}, /* ISCII Oriya */ | ||
580 | {57008, "x-iscii-ka"}, /* ISCII Kannada */ | ||
581 | {57009, "x-iscii-ma"}, /* ISCII Malayalam */ | ||
582 | {57010, "x-iscii-gu"}, /* ISCII Gujarati */ | ||
583 | {57011, "x-iscii-pa"}, /* ISCII Punjabi */ | ||
584 | |||
585 | {0, NULL} | ||
586 | }; | 570 | }; |
571 | #undef CP_ALIAS | ||
572 | |||
573 | #define CP_ALIAS(codepage, alias) alias"\0" | ||
574 | static const char cp_alias[] ALIGN1 = | ||
575 | CP_ALIAS_LIST; | ||
576 | #undef CP_ALIAS | ||
587 | 577 | ||
588 | /* | 578 | /* |
589 | * SJIS SHIFTJIS table CP932 table | 579 | * SJIS SHIFTJIS table CP932 table |
@@ -991,6 +981,7 @@ static int | |||
991 | name_to_codepage(const char *name) | 981 | name_to_codepage(const char *name) |
992 | { | 982 | { |
993 | int i; | 983 | int i; |
984 | const char *alias; | ||
994 | 985 | ||
995 | if (*name == '\0' || | 986 | if (*name == '\0' || |
996 | strcmp(name, "char") == 0) | 987 | strcmp(name, "char") == 0) |
@@ -1004,9 +995,15 @@ name_to_codepage(const char *name) | |||
1004 | else if (_strnicmp(name, "xx", 2) == 0) | 995 | else if (_strnicmp(name, "xx", 2) == 0) |
1005 | return atoi(name + 2); /* XX123 for debug */ | 996 | return atoi(name + 2); /* XX123 for debug */ |
1006 | 997 | ||
1007 | for (i = 0; codepage_alias[i].name != NULL; ++i) | 998 | i = 0; |
1008 | if (_stricmp(name, codepage_alias[i].name) == 0) | 999 | alias = cp_alias; |
1009 | return codepage_alias[i].codepage; | 1000 | while (*alias) { |
1001 | if (_stricmp(alias, name) == 0) { | ||
1002 | return cp_codepage[i]; | ||
1003 | } | ||
1004 | alias += strlen(alias) + 1; | ||
1005 | ++i; | ||
1006 | } | ||
1010 | return -1; | 1007 | return -1; |
1011 | } | 1008 | } |
1012 | 1009 | ||
@@ -1791,12 +1788,16 @@ int iconv_main(int argc, char **argv) | |||
1791 | FILE *in = stdin; | 1788 | FILE *in = stdin; |
1792 | FILE *out = stdout; | 1789 | FILE *out = stdout; |
1793 | int ignore = 0; | 1790 | int ignore = 0; |
1791 | const char *alias; | ||
1794 | 1792 | ||
1795 | while ((i = getopt(argc, argv, "f:t:lco:")) != -1) { | 1793 | while ((i = getopt(argc, argv, "f:t:lco:")) != -1) { |
1796 | switch (i) { | 1794 | switch (i) { |
1797 | case 'l': | 1795 | case 'l': |
1798 | for (i = 0; codepage_alias[i].name != NULL; ++i) | 1796 | alias = cp_alias; |
1799 | printf("%s\n", codepage_alias[i].name); | 1797 | while (*alias) { |
1798 | printf("%s\n", alias); | ||
1799 | alias += strlen(alias) + 1; | ||
1800 | } | ||
1800 | return 0; | 1801 | return 0; |
1801 | 1802 | ||
1802 | case 'f': | 1803 | case 'f': |