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