1/* Copyright (C) 1999-2007 Free Software Foundation, Inc. 2 This file is part of the GNU LIBICONV Library. 3 4 The GNU LIBICONV Library is free software; you can redistribute it 5 and/or modify it under the terms of the GNU Library General Public 6 License as published by the Free Software Foundation; either version 2 7 of the License, or (at your option) any later version. 8 9 The GNU LIBICONV Library is distributed in the hope that it will be 10 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Library General Public License for more details. 13 14 You should have received a copy of the GNU Library General Public 15 License along with the GNU LIBICONV Library; see the file COPYING.LIB. 16 If not, write to the Free Software Foundation, Inc., 51 Franklin Street, 17 Fifth Floor, Boston, MA 02110-1301, USA. */ 18 19/* The list of all system independent user-visible encodings. */ 20 21/* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined 22 in a file named "foobar.h" through the functions foobar_mbtowc and 23 foobar_wctomb (and possibly foobar_reset). */ 24 25/* DEFENCODING(( name, alias1, ..., ), 26 xxx, 27 { xxx_mbtowc, xxx_flushwc }, 28 { xxx_wctomb, xxx_reset }) 29 defines an encoding with the given name and aliases. (There is no 30 difference between a name and an alias. By convention, the name is chosen 31 as the preferred MIME name or the standard name.) 32 All names and aliases must be in ASCII. Case is not significant, but 33 for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is 34 preferred. For all names and aliases, note where it comes from. 35 xxx is the name as used in the C code (lowercase). 36 */ 37 38 39DEFENCODING(( "US-ASCII", /* IANA */ 40 "ASCII", /* IANA, JDK 1.1 */ 41 "ISO646-US", /* IANA */ 42 "ISO_646.IRV:1991", /* IANA */ 43 "ISO-IR-6", /* IANA */ 44 "ANSI_X3.4-1968", /* IANA */ 45 "ANSI_X3.4-1986", /* IANA */ 46 "CP367", /* IANA */ 47 "IBM367", /* IANA */ 48 "US", /* IANA */ 49 "csASCII", /* IANA */ 50 /*"ISO646.1991-IRV", X11R6.4 */ 51 ), 52 ascii, 53 { ascii_mbtowc, NULL }, { ascii_wctomb, NULL }) 54 55/* General multi-byte encodings */ 56 57DEFENCODING(( "UTF-8", /* IANA, RFC 2279 */ 58 /*"UTF8", JDK 1.1 */ 59 /*"CP65001", Windows */ 60 ), 61 utf8, 62 { utf8_mbtowc, NULL }, { utf8_wctomb, NULL }) 63 64DEFENCODING(( "UCS-2", /* glibc */ 65 "ISO-10646-UCS-2", /* IANA */ 66 "csUnicode", /* IANA */ 67 ), 68 ucs2, 69 { ucs2_mbtowc, NULL }, { ucs2_wctomb, NULL }) 70 71DEFENCODING(( "UCS-2BE", /* glibc */ 72 "UNICODEBIG", /* glibc */ 73 "UNICODE-1-1", /* IANA */ 74 "csUnicode11", /* IANA */ 75 /*"CP1201", Windows */ 76 ), 77 ucs2be, 78 { ucs2be_mbtowc, NULL }, { ucs2be_wctomb, NULL }) 79 80DEFENCODING(( "UCS-2LE", /* glibc */ 81 "UNICODELITTLE", /* glibc */ 82 /*"CP1200", Windows */ 83 ), 84 ucs2le, 85 { ucs2le_mbtowc, NULL }, { ucs2le_wctomb, NULL }) 86 87DEFENCODING(( "UCS-4", /* glibc */ 88 "ISO-10646-UCS-4", /* IANA */ 89 "csUCS4", /* IANA */ 90 ), 91 ucs4, 92 { ucs4_mbtowc, NULL }, { ucs4_wctomb, NULL }) 93 94DEFENCODING(( "UCS-4BE", /* glibc */ 95 /*"CP12001", Windows */ 96 ), 97 ucs4be, 98 { ucs4be_mbtowc, NULL }, { ucs4be_wctomb, NULL }) 99 100DEFENCODING(( "UCS-4LE", /* glibc */ 101 /*"CP12000", Windows */ 102 ), 103 ucs4le, 104 { ucs4le_mbtowc, NULL }, { ucs4le_wctomb, NULL }) 105 106DEFENCODING(( "UTF-16", /* IANA, RFC 2781 */ 107 ), 108 utf16, 109 { utf16_mbtowc, NULL }, { utf16_wctomb, NULL }) 110 111DEFENCODING(( "UTF-16BE", /* IANA, RFC 2781 */ 112 ), 113 utf16be, 114 { utf16be_mbtowc, NULL }, { utf16be_wctomb, NULL }) 115 116DEFENCODING(( "UTF-16LE", /* IANA, RFC 2781 */ 117 ), 118 utf16le, 119 { utf16le_mbtowc, NULL }, { utf16le_wctomb, NULL }) 120 121DEFENCODING(( "UTF-32", /* IANA, Unicode 3.1 */ 122 ), 123 utf32, 124 { utf32_mbtowc, NULL }, { utf32_wctomb, NULL }) 125 126DEFENCODING(( "UTF-32BE", /* IANA, Unicode 3.1 */ 127 ), 128 utf32be, 129 { utf32be_mbtowc, NULL }, { utf32be_wctomb, NULL }) 130 131DEFENCODING(( "UTF-32LE", /* IANA, Unicode 3.1 */ 132 ), 133 utf32le, 134 { utf32le_mbtowc, NULL }, { utf32le_wctomb, NULL }) 135 136DEFENCODING(( "UTF-7", /* IANA, RFC 2152 */ 137 "UNICODE-1-1-UTF-7", /* IANA, RFC 1642 */ 138 "csUnicode11UTF7", /* IANA */ 139 /*"CP65000", Windows */ 140 ), 141 utf7, 142 { utf7_mbtowc, NULL }, { utf7_wctomb, utf7_reset }) 143 144DEFENCODING(( "UCS-2-INTERNAL", /* libiconv */ 145 ), 146 ucs2internal, 147 { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL }) 148 149DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */ 150 ), 151 ucs2swapped, 152 { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL }) 153 154DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */ 155 ), 156 ucs4internal, 157 { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL }) 158 159DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */ 160 ), 161 ucs4swapped, 162 { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL }) 163 164DEFENCODING(( "C99", 165 ), 166 c99, 167 { c99_mbtowc, NULL }, { c99_wctomb, NULL }) 168 169DEFENCODING(( "JAVA", 170 ), 171 java, 172 { java_mbtowc, NULL }, { java_wctomb, NULL }) 173 174/* Standard 8-bit encodings */ 175 176DEFENCODING(( "ISO-8859-1", /* IANA */ 177 "ISO_8859-1", /* IANA */ 178 "ISO_8859-1:1987", /* IANA */ 179 "ISO-IR-100", /* IANA */ 180 "CP819", /* IANA */ 181 "IBM819", /* IANA */ 182 "LATIN1", /* IANA */ 183 "L1", /* IANA */ 184 "csISOLatin1", /* IANA */ 185 "ISO8859-1", /* X11R6.4, glibc, FreeBSD */ 186 /*"ISO8859_1", JDK 1.1 */ 187 /*"CP28591", Windows */ 188 ), 189 iso8859_1, 190 { iso8859_1_mbtowc, NULL }, { iso8859_1_wctomb, NULL }) 191 192DEFENCODING(( "ISO-8859-2", /* IANA */ 193 "ISO_8859-2", /* IANA */ 194 "ISO_8859-2:1987", /* IANA */ 195 "ISO-IR-101", /* IANA */ 196 "LATIN2", /* IANA */ 197 "L2", /* IANA */ 198 "csISOLatin2", /* IANA */ 199 "ISO8859-2", /* X11R6.4, glibc, FreeBSD */ 200 /*"ISO8859_2", JDK 1.1 */ 201 /*"CP28592", Windows */ 202 ), 203 iso8859_2, 204 { iso8859_2_mbtowc, NULL }, { iso8859_2_wctomb, NULL }) 205 206DEFENCODING(( "ISO-8859-3", /* IANA */ 207 "ISO_8859-3", /* IANA */ 208 "ISO_8859-3:1988", /* IANA */ 209 "ISO-IR-109", /* IANA */ 210 "LATIN3", /* IANA */ 211 "L3", /* IANA */ 212 "csISOLatin3", /* IANA */ 213 "ISO8859-3", /* X11R6.4, glibc, FreeBSD */ 214 /*"ISO8859_3", JDK 1.1 */ 215 /*"CP28593", Windows */ 216 ), 217 iso8859_3, 218 { iso8859_3_mbtowc, NULL }, { iso8859_3_wctomb, NULL }) 219 220DEFENCODING(( "ISO-8859-4", /* IANA */ 221 "ISO_8859-4", /* IANA */ 222 "ISO_8859-4:1988", /* IANA */ 223 "ISO-IR-110", /* IANA */ 224 "LATIN4", /* IANA */ 225 "L4", /* IANA */ 226 "csISOLatin4", /* IANA */ 227 "ISO8859-4", /* X11R6.4, glibc, FreeBSD */ 228 /*"ISO8859_4", JDK 1.1 */ 229 /*"CP28594", Windows */ 230 ), 231 iso8859_4, 232 { iso8859_4_mbtowc, NULL }, { iso8859_4_wctomb, NULL }) 233 234DEFENCODING(( "ISO-8859-5", /* IANA */ 235 "ISO_8859-5", /* IANA */ 236 "ISO_8859-5:1988", /* IANA */ 237 "ISO-IR-144", /* IANA */ 238 "CYRILLIC", /* IANA */ 239 "csISOLatinCyrillic", /* IANA */ 240 "ISO8859-5", /* X11R6.4, glibc, FreeBSD */ 241 /*"ISO8859_5", JDK 1.1 */ 242 /*"CP28595", Windows */ 243 ), 244 iso8859_5, 245 { iso8859_5_mbtowc, NULL }, { iso8859_5_wctomb, NULL }) 246 247DEFENCODING(( "ISO-8859-6", /* IANA */ 248 "ISO_8859-6", /* IANA */ 249 "ISO_8859-6:1987", /* IANA */ 250 "ISO-IR-127", /* IANA */ 251 "ECMA-114", /* IANA */ 252 "ASMO-708", /* IANA */ 253 "ARABIC", /* IANA */ 254 "csISOLatinArabic", /* IANA */ 255 "ISO8859-6", /* X11R6.4, glibc, FreeBSD */ 256 /*"ISO8859_6", JDK 1.1 */ 257 /*"CP28596", Windows */ 258 ), 259 iso8859_6, 260 { iso8859_6_mbtowc, NULL }, { iso8859_6_wctomb, NULL }) 261 262DEFENCODING(( "ISO-8859-7", /* IANA, RFC 1947 */ 263 "ISO_8859-7", /* IANA */ 264 "ISO_8859-7:1987", /* IANA */ 265 "ISO_8859-7:2003", 266 "ISO-IR-126", /* IANA */ 267 "ECMA-118", /* IANA */ 268 "ELOT_928", /* IANA */ 269 "GREEK8", /* IANA */ 270 "GREEK", /* IANA */ 271 "csISOLatinGreek", /* IANA */ 272 "ISO8859-7", /* X11R6.4, glibc, FreeBSD */ 273 /*"ISO8859_7", JDK 1.1 */ 274 /*"CP28597", Windows */ 275 ), 276 iso8859_7, 277 { iso8859_7_mbtowc, NULL }, { iso8859_7_wctomb, NULL }) 278 279DEFENCODING(( "ISO-8859-8", /* IANA */ 280 "ISO_8859-8", /* IANA */ 281 "ISO_8859-8:1988", /* IANA */ 282 "ISO-IR-138", /* IANA */ 283 "HEBREW", /* IANA */ 284 "csISOLatinHebrew", /* IANA */ 285 "ISO8859-8", /* X11R6.4, glibc, FreeBSD */ 286 /*"ISO8859_8", JDK 1.1 */ 287 /*"CP28598", Windows */ 288 /*"CP38598", Windows */ 289 ), 290 iso8859_8, 291 { iso8859_8_mbtowc, NULL }, { iso8859_8_wctomb, NULL }) 292 293DEFENCODING(( "ISO-8859-9", /* IANA */ 294 "ISO_8859-9", /* IANA */ 295 "ISO_8859-9:1989", /* IANA */ 296 "ISO-IR-148", /* IANA */ 297 "LATIN5", /* IANA */ 298 "L5", /* IANA */ 299 "csISOLatin5", /* IANA */ 300 "ISO8859-9", /* X11R6.4, glibc, FreeBSD */ 301 /*"ISO8859_9", JDK 1.1 */ 302 /*"CP28599", Windows */ 303 ), 304 iso8859_9, 305 { iso8859_9_mbtowc, NULL }, { iso8859_9_wctomb, NULL }) 306 307DEFENCODING(( "ISO-8859-10", /* IANA */ 308 "ISO_8859-10", 309 "ISO_8859-10:1992", /* IANA */ 310 "ISO-IR-157", /* IANA */ 311 "LATIN6", /* IANA */ 312 "L6", /* IANA */ 313 "csISOLatin6", /* IANA */ 314 "ISO8859-10", /* X11R6.4, glibc, FreeBSD */ 315 ), 316 iso8859_10, 317 { iso8859_10_mbtowc, NULL }, { iso8859_10_wctomb, NULL }) 318 319DEFENCODING(( "ISO-8859-11", /* glibc */ 320 "ISO_8859-11", 321 "ISO8859-11", /* X11R6.7, glibc */ 322 ), 323 iso8859_11, 324 { iso8859_11_mbtowc, NULL }, { iso8859_11_wctomb, NULL }) 325 326DEFENCODING(( "ISO-8859-13", /* IANA, glibc */ 327 "ISO_8859-13", 328 "ISO-IR-179", /* glibc */ 329 "LATIN7", /* glibc */ 330 "L7", /* glibc */ 331 "ISO8859-13", /* glibc, FreeBSD */ 332 ), 333 iso8859_13, 334 { iso8859_13_mbtowc, NULL }, { iso8859_13_wctomb, NULL }) 335 336DEFENCODING(( "ISO-8859-14", /* IANA, glibc */ 337 "ISO_8859-14", /* IANA */ 338 "ISO_8859-14:1998", /* IANA, glibc */ 339 "ISO-IR-199", /* IANA */ 340 "LATIN8", /* IANA, glibc */ 341 "L8", /* IANA, glibc */ 342 "ISO-CELTIC", /* IANA */ 343 "ISO8859-14", /* glibc, FreeBSD */ 344 ), 345 iso8859_14, 346 { iso8859_14_mbtowc, NULL }, { iso8859_14_wctomb, NULL }) 347 348DEFENCODING(( "ISO-8859-15", /* IANA, glibc */ 349 "ISO_8859-15", /* IANA */ 350 "ISO_8859-15:1998", /* glibc */ 351 "ISO-IR-203", 352 "LATIN-9", /* IANA */ 353 "ISO8859-15", /* glibc, FreeBSD */ 354 /*"CP28605", Windows */ 355 ), 356 iso8859_15, 357 { iso8859_15_mbtowc, NULL }, { iso8859_15_wctomb, NULL }) 358 359DEFENCODING(( "ISO-8859-16", /* IANA */ 360 "ISO_8859-16", /* IANA */ 361 "ISO_8859-16:2001", /* IANA */ 362 "ISO-IR-226", /* IANA */ 363 "LATIN10", /* IANA */ 364 "L10", /* IANA */ 365 "ISO8859-16", /* glibc, FreeBSD */ 366 ), 367 iso8859_16, 368 { iso8859_16_mbtowc, NULL }, { iso8859_16_wctomb, NULL }) 369 370DEFENCODING(( "KOI8-R", /* IANA, RFC 1489, X11R6.4, JDK 1.1 */ 371 "csKOI8R", /* IANA */ 372 /*"CP20866", Windows */ 373 ), 374 koi8_r, 375 { koi8_r_mbtowc, NULL }, { koi8_r_wctomb, NULL }) 376 377DEFENCODING(( "KOI8-U", /* IANA, RFC 2319 */ 378 ), 379 koi8_u, 380 { koi8_u_mbtowc, NULL }, { koi8_u_wctomb, NULL }) 381 382DEFENCODING(( "KOI8-RU", 383 ), 384 koi8_ru, 385 { koi8_ru_mbtowc, NULL }, { koi8_ru_wctomb, NULL }) 386 387/* Windows 8-bit encodings */ 388 389DEFENCODING(( "CP1250", /* JDK 1.1 */ 390 "WINDOWS-1250", /* IANA */ 391 "MS-EE", 392 ), 393 cp1250, 394 { cp1250_mbtowc, NULL }, { cp1250_wctomb, NULL }) 395 396DEFENCODING(( "CP1251", /* JDK 1.1 */ 397 "WINDOWS-1251", /* IANA */ 398 "MS-CYRL", 399 ), 400 cp1251, 401 { cp1251_mbtowc, NULL }, { cp1251_wctomb, NULL }) 402 403DEFENCODING(( "CP1252", /* JDK 1.1 */ 404 "WINDOWS-1252", /* IANA */ 405 "MS-ANSI", 406 ), 407 cp1252, 408 { cp1252_mbtowc, NULL }, { cp1252_wctomb, NULL }) 409 410DEFENCODING(( "CP1253", /* JDK 1.1 */ 411 "WINDOWS-1253", /* IANA */ 412 "MS-GREEK", 413 ), 414 cp1253, 415 { cp1253_mbtowc, NULL }, { cp1253_wctomb, NULL }) 416 417DEFENCODING(( "CP1254", /* JDK 1.1 */ 418 "WINDOWS-1254", /* IANA */ 419 "MS-TURK", 420 ), 421 cp1254, 422 { cp1254_mbtowc, NULL }, { cp1254_wctomb, NULL }) 423 424DEFENCODING(( "CP1255", /* JDK 1.1 */ 425 "WINDOWS-1255", /* IANA */ 426 "MS-HEBR", 427 ), 428 cp1255, 429 { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL }) 430 431DEFENCODING(( "CP1256", /* JDK 1.1 */ 432 "WINDOWS-1256", /* IANA */ 433 "MS-ARAB", 434 ), 435 cp1256, 436 { cp1256_mbtowc, NULL }, { cp1256_wctomb, NULL }) 437 438DEFENCODING(( "CP1257", /* JDK 1.1 */ 439 "WINDOWS-1257", /* IANA */ 440 "WINBALTRIM", 441 ), 442 cp1257, 443 { cp1257_mbtowc, NULL }, { cp1257_wctomb, NULL }) 444 445DEFENCODING(( "CP1258", /* JDK 1.1 */ 446 "WINDOWS-1258", /* IANA */ 447 ), 448 cp1258, 449 { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL }) 450 451/* DOS 8-bit encodings */ 452 453DEFENCODING(( "CP850", /* IANA, JDK 1.1 */ 454 "IBM850", /* IANA */ 455 "850", /* IANA */ 456 "csPC850Multilingual", /* IANA */ 457 ), 458 cp850, 459 { cp850_mbtowc, NULL }, { cp850_wctomb, NULL }) 460 461DEFENCODING(( "CP862", /* IANA, JDK 1.1 */ 462 "IBM862", /* IANA */ 463 "862", /* IANA */ 464 "csPC862LatinHebrew", /* IANA */ 465 ), 466 cp862, 467 { cp862_mbtowc, NULL }, { cp862_wctomb, NULL }) 468 469DEFENCODING(( "CP866", /* IANA, JDK 1.1 */ 470 "IBM866", /* IANA */ 471 "866", /* IANA */ 472 "csIBM866", /* IANA */ 473 ), 474 cp866, 475 { cp866_mbtowc, NULL }, { cp866_wctomb, NULL }) 476 477/* Macintosh 8-bit encodings */ 478 479DEFENCODING(( "MacRoman", /* JDK 1.1 */ 480 /* This is the best table for MACINTOSH. The ones */ 481 /* in glibc and FreeBSD-iconv are bad quality. */ 482 "MACINTOSH", /* IANA */ 483 "MAC", /* IANA */ 484 "csMacintosh", /* IANA */ 485 /*"CP10000", Windows */ 486 ), 487 mac_roman, 488 { mac_roman_mbtowc, NULL }, { mac_roman_wctomb, NULL }) 489 490DEFENCODING(( "MacCentralEurope", /* JDK 1.1 */ 491 /*"CP10029", Windows */ 492 ), 493 mac_centraleurope, 494 { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL }) 495 496DEFENCODING(( "MacIceland", /* JDK 1.1 */ 497 /*"CP10079", Windows */ 498 ), 499 mac_iceland, 500 { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL }) 501 502DEFENCODING(( "MacCroatian", /* JDK 1.1 */ 503 /*"CP10082", Windows */ 504 ), 505 mac_croatian, 506 { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL }) 507 508DEFENCODING(( "MacRomania", /* JDK 1.1 */ 509 /*"CP10010", Windows */ 510 ), 511 mac_romania, 512 { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL }) 513 514DEFENCODING(( "MacCyrillic", /* JDK 1.1 */ 515 /*"CP10007", Windows */ 516 ), 517 mac_cyrillic, 518 { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL }) 519 520DEFENCODING(( "MacUkraine", /* JDK 1.1 */ 521 /*"CP10017", Windows */ 522 ), 523 mac_ukraine, 524 { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL }) 525 526DEFENCODING(( "MacGreek", /* JDK 1.1 */ 527 /*"CP10006", Windows */ 528 ), 529 mac_greek, 530 { mac_greek_mbtowc, NULL }, { mac_greek_wctomb, NULL }) 531 532DEFENCODING(( "MacTurkish", /* JDK 1.1 */ 533 /*"CP10081", Windows */ 534 ), 535 mac_turkish, 536 { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL }) 537 538DEFENCODING(( "MacHebrew", /* JDK 1.1 */ 539 /*"CP10005", Windows */ 540 ), 541 mac_hebrew, 542 { mac_hebrew_mbtowc, NULL }, { mac_hebrew_wctomb, NULL }) 543 544DEFENCODING(( "MacArabic", /* JDK 1.1 */ 545 /*"CP10004", Windows */ 546 ), 547 mac_arabic, 548 { mac_arabic_mbtowc, NULL }, { mac_arabic_wctomb, NULL }) 549 550DEFENCODING(( "MacThai", /* JDK 1.1 */ 551 /*"CP10021", Windows */ 552 ), 553 mac_thai, 554 { mac_thai_mbtowc, NULL }, { mac_thai_wctomb, NULL }) 555 556/* Other platform specific 8-bit encodings */ 557 558DEFENCODING(( "HP-ROMAN8", /* IANA, X11R6.4 */ 559 "ROMAN8", /* IANA */ 560 "R8", /* IANA */ 561 "csHPRoman8", /* IANA */ 562 ), 563 hp_roman8, 564 { hp_roman8_mbtowc, NULL }, { hp_roman8_wctomb, NULL }) 565 566DEFENCODING(( "NEXTSTEP", 567 ), 568 nextstep, 569 { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL }) 570 571/* Regional 8-bit encodings used for a single language */ 572 573DEFENCODING(( "ARMSCII-8", 574 ), 575 armscii_8, 576 { armscii_8_mbtowc, NULL }, { armscii_8_wctomb, NULL }) 577 578DEFENCODING(( "GEORGIAN-ACADEMY", 579 ), 580 georgian_academy, 581 { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL }) 582 583DEFENCODING(( "GEORGIAN-PS", 584 ), 585 georgian_ps, 586 { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL }) 587 588DEFENCODING(( "KOI8-T", 589 ), 590 koi8_t, 591 { koi8_t_mbtowc, NULL }, { koi8_t_wctomb, NULL }) 592 593DEFENCODING(( "PT154", /* IANA, glibc */ 594 "PTCP154", /* IANA */ 595 "CP154", /* IANA */ 596 "CYRILLIC-ASIAN", /* IANA */ 597 "csPTCP154", /* IANA */ 598 ), 599 pt154, 600 { pt154_mbtowc, NULL }, { pt154_wctomb, NULL }) 601 602DEFENCODING(( "RK1048", /* IANA, glibc */ 603 "STRK1048-2002", /* IANA */ 604 "KZ-1048", /* IANA */ 605 "csKZ1048", /* IANA */ 606 ), 607 rk1048, 608 { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL }) 609 610DEFENCODING(( "MULELAO-1", 611 ), 612 mulelao, 613 { mulelao_mbtowc, NULL }, { mulelao_wctomb, NULL }) 614 615DEFENCODING(( "CP1133", 616 "IBM-CP1133", 617 ), 618 cp1133, 619 { cp1133_mbtowc, NULL }, { cp1133_wctomb, NULL }) 620 621DEFENCODING(( "TIS-620", /* IANA */ 622 "TIS620", /* glibc */ 623 "TIS620-0", /* glibc */ 624 "TIS620.2529-1", /* glibc */ 625 "TIS620.2533-0", /* glibc */ 626 "TIS620.2533-1", 627 "ISO-IR-166", /* glibc */ 628 ), 629 tis620, 630 { tis620_mbtowc, NULL }, { tis620_wctomb, NULL }) 631 632DEFENCODING(( "CP874", /* JDK 1.1 */ 633 "WINDOWS-874", 634 ), 635 cp874, 636 { cp874_mbtowc, NULL }, { cp874_wctomb, NULL }) 637 638DEFENCODING(( "VISCII", /* IANA, RFC 1456 */ 639 "VISCII1.1-1", 640 "csVISCII", /* IANA */ 641 ), 642 viscii, 643 { viscii_mbtowc, NULL }, { viscii_wctomb, NULL }) 644 645DEFENCODING(( "TCVN", 646 "TCVN-5712", 647 "TCVN5712-1", 648 "TCVN5712-1:1993", 649 ), 650 tcvn, 651 { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL }) 652 653/* CJK character sets (not documented) */ 654 655DEFENCODING(( "JIS_C6220-1969-RO", /* IANA */ 656 "ISO646-JP", /* IANA */ 657 "ISO-IR-14", /* IANA */ 658 "JP", /* IANA */ 659 "csISO14JISC6220ro", /* IANA */ 660 ), 661 iso646_jp, 662 { iso646_jp_mbtowc, NULL }, { iso646_jp_wctomb, NULL }) 663 664DEFENCODING(( "JIS_X0201", /* IANA */ 665 "JISX0201-1976", 666 "X0201", /* IANA */ 667 "csHalfWidthKatakana", /* IANA */ 668 /*"JISX0201.1976-0", X11R6.4 */ 669 /*"JIS0201", JDK 1.1 */ 670 ), 671 jisx0201, 672 { jisx0201_mbtowc, NULL }, { jisx0201_wctomb, NULL }) 673 674DEFENCODING(( "JIS_X0208", 675 "JIS_X0208-1983", /* IANA */ 676 "JIS_X0208-1990", 677 "JIS0208", 678 "X0208", /* IANA */ 679 "ISO-IR-87", /* IANA */ 680 "JIS_C6226-1983", /* IANA */ 681 "csISO87JISX0208", /* IANA */ 682 /*"JISX0208.1983-0", X11R6.4 */ 683 /*"JISX0208.1990-0", X11R6.4 */ 684 /*"JIS0208", JDK 1.1 */ 685 ), 686 jisx0208, 687 { jisx0208_mbtowc, NULL }, { jisx0208_wctomb, NULL }) 688 689DEFENCODING(( "JIS_X0212", 690 "JIS_X0212.1990-0", 691 "JIS_X0212-1990", /* IANA */ 692 "X0212", /* IANA */ 693 "ISO-IR-159", /* IANA */ 694 "csISO159JISX02121990", /* IANA */ 695 /*"JISX0212.1990-0", X11R6.4 */ 696 /*"JIS0212", JDK 1.1 */ 697 ), 698 jisx0212, 699 { jisx0212_mbtowc, NULL }, { jisx0212_wctomb, NULL }) 700 701DEFENCODING(( "GB_1988-80", /* IANA */ 702 "ISO646-CN", /* IANA */ 703 "ISO-IR-57", /* IANA */ 704 "CN", /* IANA */ 705 "csISO57GB1988", /* IANA */ 706 ), 707 iso646_cn, 708 { iso646_cn_mbtowc, NULL }, { iso646_cn_wctomb, NULL }) 709 710DEFENCODING(( "GB_2312-80", /* IANA */ 711 "ISO-IR-58", /* IANA */ 712 "csISO58GB231280", /* IANA */ 713 "CHINESE", /* IANA */ 714 /*"GB2312.1980-0", X11R6.4 */ 715 ), 716 gb2312, 717 { gb2312_mbtowc, NULL }, { gb2312_wctomb, NULL }) 718 719DEFENCODING(( "ISO-IR-165", 720 "CN-GB-ISOIR165", /* RFC 1922 */ 721 ), 722 isoir165, 723 { isoir165_mbtowc, NULL }, { isoir165_wctomb, NULL }) 724 725DEFENCODING(( "KSC_5601", /* IANA */ 726 "KS_C_5601-1987", /* IANA */ 727 "KS_C_5601-1989", /* IANA */ 728 "ISO-IR-149", /* IANA */ 729 "csKSC56011987", /* IANA */ 730 "KOREAN", /* IANA */ 731 /*"KSC5601.1987-0", X11R6.4 */ 732 /*"KSX1001:1992", Ken Lunde */ 733 ), 734 ksc5601, 735 { ksc5601_mbtowc, NULL }, { ksc5601_wctomb, NULL }) 736 737/* CJK encodings */ 738 739DEFENCODING(( "EUC-JP", /* IANA */ 740 "EUCJP", /* glibc */ 741 "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */ 742 "csEUCPkdFmtJapanese", /* IANA */ 743 /*"EUC_JP", JDK 1.1 */ 744 /*"CP51932", Windows */ 745 ), 746 euc_jp, 747 { euc_jp_mbtowc, NULL }, { euc_jp_wctomb, NULL }) 748 749DEFENCODING(( "SHIFT_JIS", /* IANA */ 750 "SHIFT-JIS", /* glibc */ 751 "SJIS", /* JDK 1.1 */ 752 "MS_KANJI", /* IANA */ 753 "csShiftJIS", /* IANA */ 754 ), 755 sjis, 756 { sjis_mbtowc, NULL }, { sjis_wctomb, NULL }) 757 758DEFENCODING(( "CP932", /* glibc */ 759 ), 760 cp932, 761 { cp932_mbtowc, NULL }, { cp932_wctomb, NULL }) 762 763DEFENCODING(( "ISO-2022-JP", /* IANA, RFC 1468 */ 764 "csISO2022JP", /* IANA */ 765 /*"ISO2022JP", JDK 1.1 */ 766 ), 767 iso2022_jp, 768 { iso2022_jp_mbtowc, NULL }, { iso2022_jp_wctomb, iso2022_jp_reset }) 769 770DEFENCODING(( "ISO-2022-JP-1", /* RFC 2237 */ 771 ), 772 iso2022_jp1, 773 { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset }) 774 775DEFENCODING(( "ISO-2022-JP-2", /* IANA, RFC 1554 */ 776 "csISO2022JP2", /* IANA */ 777 ), 778 iso2022_jp2, 779 { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset }) 780 781DEFENCODING(( "EUC-CN", /* glibc */ 782 "EUCCN", /* glibc */ 783 "GB2312", /* IANA */ 784 "CN-GB", /* RFC 1922 */ 785 "csGB2312", /* IANA */ 786 /*"EUC_CN", JDK 1.1 */ 787 /*"CP51936", Windows */ 788 ), 789 euc_cn, 790 { euc_cn_mbtowc, NULL }, { euc_cn_wctomb, NULL }) 791 792DEFENCODING(( "GBK", /* IANA, JDK 1.1 */ 793 ), 794 ces_gbk, 795 { ces_gbk_mbtowc, NULL }, { ces_gbk_wctomb, NULL }) 796 797DEFENCODING(( "CP936", /* IANA */ 798 "MS936", /* IANA */ 799 "WINDOWS-936", /* IANA */ 800 ), 801 cp936, 802 { cp936_mbtowc, NULL }, { cp936_wctomb, NULL }) 803 804DEFENCODING(( "GB18030", /* IANA, glibc */ 805 /*"CP54936", Windows */ 806 ), 807 gb18030, 808 { gb18030_mbtowc, NULL }, { gb18030_wctomb, NULL }) 809 810DEFENCODING(( "ISO-2022-CN", /* IANA, RFC 1922 */ 811 "csISO2022CN", 812 /*"ISO2022CN", JDK 1.1 */ 813 ), 814 iso2022_cn, 815 { iso2022_cn_mbtowc, NULL }, { iso2022_cn_wctomb, iso2022_cn_reset }) 816 817DEFENCODING(( "ISO-2022-CN-EXT", /* IANA, RFC 1922 */ 818 ), 819 iso2022_cn_ext, 820 { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset }) 821 822DEFENCODING(( "HZ", /* RFC 1843 */ 823 "HZ-GB-2312", /* IANA, RFC 1842 */ 824 ), 825 hz, 826 { hz_mbtowc, NULL }, { hz_wctomb, hz_reset }) 827 828DEFENCODING(( "EUC-TW", /* glibc */ 829 "EUCTW", /* glibc */ 830 "csEUCTW", 831 /*"EUC_TW", JDK 1.1 */ 832 /*"CP51950", Windows */ 833 ), 834 euc_tw, 835 { euc_tw_mbtowc, NULL }, { euc_tw_wctomb, NULL }) 836 837DEFENCODING(( "BIG5", /* IANA, JDK 1.1 */ 838 "BIG-5", /* glibc */ 839 "BIG-FIVE", /* glibc */ 840 "BIGFIVE", /* glibc */ 841 "CN-BIG5", /* RFC 1922 */ 842 "csBig5", /* IANA */ 843 ), 844 ces_big5, 845 { ces_big5_mbtowc, NULL }, { ces_big5_wctomb, NULL }) 846 847DEFENCODING(( "CP950", /* JDK 1.1 */ 848 ), 849 cp950, 850 { cp950_mbtowc, NULL }, { cp950_wctomb, NULL }) 851 852DEFENCODING(( "BIG5-HKSCS:1999", 853 ), 854 big5hkscs1999, 855 { big5hkscs1999_mbtowc, big5hkscs1999_flushwc }, { big5hkscs1999_wctomb, big5hkscs1999_reset }) 856 857DEFENCODING(( "BIG5-HKSCS:2001", 858 ), 859 big5hkscs2001, 860 { big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset }) 861 862DEFENCODING(( "BIG5-HKSCS", /* IANA */ 863 "BIG5HKSCS", /* glibc */ 864 "BIG5-HKSCS:2004", 865 ), 866 big5hkscs2004, 867 { big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset }) 868 869DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */ 870 "EUCKR", /* glibc */ 871 "csEUCKR", /* IANA */ 872 /*"EUC_KR", JDK 1.1 */ 873 /*"CP51949", Windows */ 874 ), 875 euc_kr, 876 { euc_kr_mbtowc, NULL }, { euc_kr_wctomb, NULL }) 877 878DEFENCODING(( "CP949", /* JDK 1.1 */ 879 "UHC", /* glibc */ 880 ), 881 cp949, 882 { cp949_mbtowc, NULL }, { cp949_wctomb, NULL }) 883 884DEFENCODING(( "JOHAB", /* glibc */ 885 "CP1361", /* glibc */ 886 ), 887 johab, 888 { johab_mbtowc, NULL }, { johab_wctomb, NULL }) 889 890DEFENCODING(( "ISO-2022-KR", /* IANA, RFC 1557 */ 891 "csISO2022KR", /* IANA */ 892 /*"ISO2022KR", JDK 1.1 */ 893 ), 894 iso2022_kr, 895 { iso2022_kr_mbtowc, NULL }, { iso2022_kr_wctomb, iso2022_kr_reset }) 896 897