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