1 /*
   2  * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /* @test
  25  * @bug 4473201 4696726 4652234 4482298 4784385 4966197 4267354 5015668
  26         6911753 8071447 8186751
  27  * @summary Check that registered charsets are actually registered
  28  * @modules jdk.charsets
  29  */
  30 
  31 import java.io.*;
  32 import java.nio.*;
  33 import java.nio.charset.*;
  34 import java.util.*;
  35 
  36 public class RegisteredCharsets {
  37 
  38     static String [] ianaRegistered = {
  39                             "US-ASCII", "UTF8", "Big5", "EUC-JP",
  40                             "GBK", "GB18030", "ISO-2022-KR", "ISO-2022-JP",
  41                             "GB2312",  // IANA preferred name for "EUC-CN"
  42                             "ISO-8859-1", "ISO-8859-2", "ISO-8859-3",
  43                             "ISO-8859-4", "ISO-8859-5", "ISO-8859-6",
  44                             "ISO-8859-7", "ISO-8859-8", "ISO-8859-9",
  45                             "ISO-8859-13", "ISO-8859-15", "ISO-8859-16",
  46                             "windows-1251",
  47                             "windows-1252", "windows-1253", "windows-1254",
  48                             "windows-1255", "windows-1256", "windows-31j",
  49                             "Shift_JIS", "JIS_X0201", "JIS_X0212-1990",
  50                             "TIS-620", "Big5-HKSCS",
  51                             "ISO-2022-CN",
  52                             "IBM850",
  53                             "IBM852",
  54                             "IBM855",
  55                             "IBM857",
  56                             "IBM860",
  57                             "IBM861",
  58                             "IBM862",
  59                             "IBM863",
  60                             "IBM864",
  61                             "IBM865",
  62                             "IBM866",
  63                             "IBM868",
  64                             "IBM869",
  65                             "IBM437",
  66                             "IBM775",
  67                             "IBM037",
  68                             "IBM1026",
  69                             "IBM273",
  70                             "IBM277",
  71                             "IBM278",
  72                             "IBM280",
  73                             "IBM284",
  74                             "IBM285",
  75                             "IBM297",
  76                             "IBM420",
  77                             "IBM424",
  78                             "IBM500",
  79                             "IBM-Thai",
  80                             "IBM870",
  81                             "IBM871",
  82                             "IBM918",
  83                             "IBM1047",
  84                             "IBM01140",
  85                             "IBM01141",
  86                             "IBM01142",
  87                             "IBM01143",
  88                             "IBM01144",
  89                             "IBM01145",
  90                             "IBM01146",
  91                             "IBM01147",
  92                             "IBM01148",
  93                             "IBM01149",
  94                             "IBM00858" };
  95 
  96     static String [] ianaUnRegistered = {
  97                             "x-EUC-TW", "x-ISCII91",
  98                             "x-windows-949", "x-windows-950",
  99                             "x-mswin-936", "x-JIS0208",
 100                             "x-ISO-8859-11",
 101                             "x-windows-874",
 102                             "x-PCK", "x-JISAutoDetect", "x-Johab",
 103                             "x-MS950-HKSCS",
 104                             "x-Big5-Solaris",
 105                             "x-ISO-2022-CN-CNS",
 106                             "x-ISO-2022-CN-GB",
 107                             "x-MacArabic",
 108                             "x-MacCentralEurope",
 109                             "x-MacCroatian",
 110                             "x-MacCyrillic",
 111                             "x-MacDingbat",
 112                             "x-MacGreek",
 113                             "x-MacHebrew",
 114                             "x-MacIceland",
 115                             "x-MacRoman",
 116                             "x-MacRomania",
 117                             "x-MacSymbol",
 118                             "x-MacThai",
 119                             "x-MacTurkish",
 120                             "x-MacUkraine",
 121                             "x-IBM942",
 122                             "x-IBM942C",
 123                             "x-IBM943",
 124                             "x-IBM943C",
 125                             "x-IBM948",
 126                             "x-IBM950",
 127                             "x-IBM930",
 128                             "x-IBM935",
 129                             "x-IBM937",
 130                             "x-IBM856",
 131                             "x-IBM874",
 132                             "x-IBM737",
 133                             "x-IBM1006",
 134                             "x-IBM1046",
 135                             "x-IBM1098",
 136                             "x-IBM1025",
 137                             "x-IBM1112",
 138                             "x-IBM1122",
 139                             "x-IBM1123",
 140                             "x-IBM1124",
 141                             "x-IBM1129",
 142                             "x-IBM1166",
 143                             "x-IBM875",
 144                             "x-IBM921",
 145                             "x-IBM922",
 146                             "x-IBM1097",
 147                             "x-IBM949",
 148                             "x-IBM949C",
 149                             "x-IBM939",
 150                             "x-IBM933",
 151                             "x-IBM1381",
 152                             "x-IBM1383",
 153                             "x-IBM970",
 154                             "x-IBM964",
 155                             "x-IBM33722",
 156                             "x-IBM1006",
 157                             "x-IBM1046",
 158                             "x-IBM1097",
 159                             "x-IBM1098",
 160                             "x-IBM1112",
 161                             "x-IBM1122",
 162                             "x-IBM1123",
 163                             "x-IBM1124",
 164                             "x-IBM33722",
 165                             "x-IBM737",
 166                             "x-IBM856",
 167                             "x-IBM874",
 168                             "x-IBM875",
 169                             "x-IBM922",
 170                             "x-IBM933",
 171                             "x-IBM964" };
 172 
 173     static void check(String csn, boolean testRegistered) throws Exception {
 174         if (!Charset.forName(csn).isRegistered() && testRegistered)
 175                 throw new Exception("Not registered: " + csn);
 176         else if (Charset.forName(csn).isRegistered() && !testRegistered)
 177                 throw new Exception("Registered: " + csn + "should be unregistered");
 178     }
 179 
 180     static void aliasCheck(String canonicalName, String[] aliasNames) throws Exception
 181     {
 182         for (int k = 0; k < aliasNames.length; k++ ) {
 183             Charset cs = Charset.forName(aliasNames[k]);
 184             if (!cs.name().equals(canonicalName)) {
 185                 throw new Exception("Unexpected Canonical name " + canonicalName);
 186             }
 187         }
 188     }
 189 
 190     public static void main(String[] args) throws Exception {
 191 
 192         for (int i = 0; i < ianaRegistered.length ; i++)
 193             check(ianaRegistered[i], true);
 194 
 195         for (int i = 0; i < ianaUnRegistered.length ; i++)
 196             check(ianaUnRegistered[i], false);
 197 
 198         // Check aliases registered with IANA for all NIO supported
 199         // Charset implementations.
 200         //
 201         // The aliases below are in sync with the IANA registered charset
 202         // document at: http://www.iana.org/assignments/character-sets
 203         // Last updated 7/25/2002
 204 
 205         aliasCheck("US-ASCII",
 206                 new String[] {"ascii","ANSI_X3.4-1968",
 207                 "iso-ir-6","ANSI_X3.4-1986", "ISO_646.irv:1991",
 208                 "ASCII", "ISO646-US","us","IBM367","cp367",
 209                 "csASCII", "default"});
 210 
 211         aliasCheck("UTF-8",
 212                 new String[] {
 213                     "UTF8",
 214                     "unicode-1-1-utf-8"
 215                 });
 216 
 217         aliasCheck("UTF-16",
 218                 new String[] {
 219                     "UTF_16",
 220                     "utf16"
 221                 });
 222 
 223         aliasCheck("UTF-16BE",
 224                 new String[] {
 225                     "UTF_16BE",
 226                     "ISO-10646-UCS-2",
 227                     "X-UTF-16BE",
 228                     "UnicodeBigUnmarked"
 229                 });
 230 
 231         aliasCheck("UTF-16LE",
 232                 new String[] {
 233                     "UTF_16LE",
 234                     "X-UTF-16LE",
 235                     "UnicodeLittleUnmarked"
 236                 });
 237 
 238         aliasCheck("Big5",
 239                 new String[] {
 240                     "csBig5"
 241                 });
 242 
 243         aliasCheck("Big5-HKSCS",
 244                 new String[] {
 245                     "Big5_HKSCS",
 246                     "big5hk",
 247                     "big5-hkscs",
 248                     "big5hkscs"
 249                 });
 250 
 251         aliasCheck("x-MS950-HKSCS",
 252                 new String[] {
 253                     "MS950_HKSCS"
 254                 });
 255 
 256         aliasCheck("GB18030",
 257                 new String[] {
 258                     "gb18030-2000"
 259                 });
 260 
 261         aliasCheck("ISO-2022-KR", new String[] {"csISO2022KR"});
 262         aliasCheck("ISO-2022-JP", new String[] {"csISO2022JP"});
 263         aliasCheck("EUC-KR", new String[] { "csEUCKR"});
 264         aliasCheck("ISO-8859-1",
 265                 new String[] {
 266 
 267                     // IANA aliases
 268                     "iso-ir-100",
 269                     "ISO_8859-1",
 270                     "latin1",
 271                     "l1",
 272                     "IBM819",
 273                     "cp819",
 274                     "csISOLatin1",
 275 
 276                     // JDK historical aliases
 277                     "819",
 278                     "IBM-819",
 279                     "ISO8859_1",
 280                     "ISO_8859-1:1987",
 281                     "ISO_8859_1",
 282                     "8859_1",
 283                     "ISO8859-1",
 284 
 285                 });
 286 
 287         aliasCheck("ISO-8859-2",
 288             new String[] {
 289                 "ISO_8859-2",
 290                 "ISO_8859-2:1987",
 291                 "iso-ir-101",
 292                 "latin2",
 293                 "l2",
 294                 "8859_2",
 295                 "iso_8859-2:1987",
 296                 "iso8859-2",
 297                 "ibm912",
 298                 "ibm-912",
 299                 "cp912",
 300                 "912",
 301                 "csISOLatin2"});
 302 
 303         aliasCheck("ISO-8859-3",
 304                 new String[] {"latin3",
 305                 "ISO_8859-3:1988",
 306                 "iso-ir-109",
 307                 "l3",
 308                 "8859_3",
 309                 "iso_8859-3:1988",
 310                 "iso8859-3",
 311                 "ibm913",
 312                 "ibm-913",
 313                 "cp913",
 314                 "913",
 315                 "csISOLatin3"});
 316 
 317         aliasCheck("ISO-8859-4",
 318                 new String[] {"csISOLatin4",
 319                     "ISO_8859-4:1988",
 320                     "iso-ir-110",
 321                     "latin4",
 322                     "8859_4",
 323                     "iso_8859-4:1988",
 324                     "iso8859-4",
 325                     "ibm914",
 326                     "ibm-914",
 327                     "cp914",
 328                     "914",
 329                     "l4"});
 330 
 331         aliasCheck("ISO-8859-5",
 332                 new String[] {
 333                     "iso8859_5", // JDK historical
 334                     "8859_5",
 335                     "iso-ir-144",
 336                     "ISO_8859-5",
 337                     "ISO_8859-5:1988",
 338                     "ISO8859-5",
 339                     "cyrillic",
 340                     "ibm915",
 341                     "ibm-915",
 342                     "915",
 343                     "cp915",
 344                     "csISOLatinCyrillic"
 345                 });
 346 
 347         aliasCheck("ISO-8859-6",
 348                 new String[] {"ISO_8859-6:1987",
 349                 "iso-ir-127",
 350                 "ISO_8859-6",
 351                 "ECMA-114",
 352                 "ASMO-708",
 353                 "arabic",
 354                 "8859_6",
 355                 "iso_8859-6:1987",
 356                 "iso8859-6",
 357                 "ibm1089",
 358                 "ibm-1089",
 359                 "cp1089",
 360                 "1089",
 361                 "csISOLatinArabic"});
 362 
 363         aliasCheck("ISO-8859-7",
 364                 new String[] {"ISO_8859-7:1987",
 365                 "iso-ir-126",
 366                 "ISO_8859-7",
 367                 "ELOT_928",
 368                 "ECMA-118",
 369                 "greek",
 370                 "greek8",
 371                 "8859_7",
 372                 "iso_8859-7:1987",
 373                 "iso8859-7",
 374                 "ibm813",
 375                 "ibm-813",
 376                 "cp813",
 377                 "813",
 378                 "csISOLatinGreek"});
 379 
 380         aliasCheck("ISO-8859-8",
 381                 new String[] {
 382                 "ISO_8859-8:1988",
 383                 "iso-ir-138",
 384                 "ISO_8859-8",
 385                 "hebrew",
 386                 "8859_8",
 387                 "iso_8859-8:1988",
 388                 "iso8859-8",
 389                 "ibm916",
 390                 "ibm-916",
 391                 "cp916",
 392                 "916",
 393                 "csISOLatinHebrew"});
 394 
 395         aliasCheck("ISO-8859-9",
 396                 new String[] {"ISO_8859-9:1989",
 397                 "iso-ir-148",
 398                 "ISO_8859-9",
 399                 "latin5",
 400                 "l5",
 401                 "8859_9",
 402                 "iso8859-9",
 403                 "ibm920",
 404                 "ibm-920",
 405                 "cp920",
 406                 "920",
 407                 "csISOLatin5"});
 408 
 409         aliasCheck("ISO-8859-13",
 410                 new String[] {
 411                     "iso8859_13", // JDK historical
 412                     "iso_8859-13",
 413                     "8859_13",
 414                     "ISO8859-13"
 415                 });
 416 
 417         aliasCheck("ISO-8859-15",
 418                 new String[] {
 419                     // IANA alias
 420                     "ISO_8859-15",
 421                     "Latin-9",
 422                     "csISO885915",
 423                     // JDK historical aliases
 424                     "8859_15",
 425                     "ISO-8859-15",
 426                     "ISO_8859-15",
 427                     "ISO8859-15",
 428                     "ISO8859_15",
 429                     "IBM923",
 430                     "IBM-923",
 431                     "cp923",
 432                     "923",
 433                     "LATIN0",
 434                     "LATIN9",
 435                     "L9",
 436                     "csISOlatin0",
 437                     "csISOlatin9",
 438                     "ISO8859_15_FDIS"
 439                 });
 440 
 441         aliasCheck("ISO-8859-16",
 442                 new String[] {
 443                     "iso-ir-226",
 444                     "ISO_8859-16:2001",
 445                     "ISO_8859-16",
 446                     "latin10",
 447                     "l10",
 448                     "csISO885916"
 449                    });
 450 
 451         aliasCheck("JIS_X0212-1990",
 452                 new String[] {
 453                 "iso-ir-159",
 454                 "csISO159JISX02121990"});
 455 
 456         aliasCheck("JIS_X0201",
 457                 new String[]{
 458                 "X0201",
 459                 "csHalfWidthKatakana"});
 460 
 461         aliasCheck("KOI8-R",
 462                 new String[] {
 463                 "KOI8_R",
 464                 "csKOI8R"});
 465 
 466         aliasCheck("GBK",
 467                 new String[] {
 468                 "windows-936"});
 469 
 470         aliasCheck("Shift_JIS",
 471                 new String[] {
 472                 "MS_Kanji",
 473                 "csShiftJIS"});
 474 
 475         aliasCheck("EUC-JP",
 476                 new String[] {
 477                 "Extended_UNIX_Code_Packed_Format_for_Japanese",
 478                 "csEUCPkdFmtJapanese"});
 479 
 480         aliasCheck("Big5", new String[] {"csBig5"});
 481 
 482         aliasCheck("windows-31j", new String[] {"csWindows31J"});
 483 
 484         aliasCheck("x-iso-8859-11",
 485                     new String[] { "iso-8859-11", "iso8859_11" });
 486 
 487         aliasCheck("windows-1250",
 488                 new String[] {
 489                     "cp1250",
 490                     "cp5346"
 491                 });
 492 
 493         aliasCheck("windows-1251",
 494                 new String[] {
 495                     "cp1251",
 496                     "cp5347",
 497                     "ansi-1251"
 498                 });
 499 
 500         aliasCheck("windows-1252",
 501                 new String[] {
 502                     "cp1252",
 503                     "cp5348"
 504                 });
 505 
 506         aliasCheck("windows-1253",
 507                 new String[] {
 508                     "cp1253",
 509                     "cp5349"
 510                 });
 511 
 512         aliasCheck("windows-1254",
 513                 new String[] {
 514                     "cp1254",
 515                     "cp5350"
 516                 });
 517 
 518         aliasCheck("windows-1255",
 519                 new String[] {
 520                     "cp1255"
 521                 });
 522 
 523         aliasCheck("windows-1256",
 524                 new String[] {
 525                     "cp1256"
 526                 });
 527 
 528         aliasCheck("windows-1257",
 529                 new String[] {
 530                     "cp1257",
 531                     "cp5353"
 532                 });
 533 
 534         aliasCheck("windows-1258",
 535                 new String[] {
 536                     "cp1258"
 537                 });
 538 
 539         aliasCheck("x-windows-874",
 540                 new String[] {
 541                     "ms874", "ms-874", "windows-874" });
 542 
 543         aliasCheck("GB2312",
 544                 new String[] {
 545                     "x-EUC-CN",
 546                     "gb2312-80",
 547                     "gb2312-1980",
 548                     "euc-cn",
 549                     "euccn" });
 550 
 551         aliasCheck("x-IBM942" ,
 552                 new String[] {
 553                     "cp942", // JDK historical
 554                     "ibm942",
 555                     "ibm-942",
 556                     "942"
 557                 });
 558 
 559         aliasCheck("x-IBM942C" ,
 560                 new String[] {
 561                     "cp942C", // JDK historical
 562                     "ibm942C",
 563                     "ibm-942C",
 564                     "942C"
 565                 } );
 566 
 567         aliasCheck("x-IBM943" ,
 568                 new String[] {
 569                     "cp943", // JDK historical
 570                     "ibm943",
 571                     "ibm-943",
 572                     "943"
 573                 } );
 574 
 575         aliasCheck("x-IBM943C" ,
 576                 new String[] {
 577                     "cp943c", // JDK historical
 578                     "ibm943C",
 579                     "ibm-943C",
 580                     "943C"
 581                 } );
 582 
 583         aliasCheck("x-IBM948" ,
 584                 new String[] {
 585                     "cp948", // JDK historical
 586                     "ibm948",
 587                     "ibm-948",
 588                     "948"
 589                 } );
 590 
 591         aliasCheck("x-IBM950" ,
 592                 new String[] {
 593                     "cp950", // JDK historical
 594                     "ibm950",
 595                     "ibm-950",
 596                     "950"
 597                 } );
 598 
 599         aliasCheck("x-IBM930" ,
 600                 new String[] {
 601                     "cp930", // JDK historical
 602                     "ibm930",
 603                     "ibm-930",
 604                     "930"
 605                 } );
 606 
 607         aliasCheck("x-IBM935" ,
 608                 new String[] {
 609                     "cp935", // JDK historical
 610                     "ibm935",
 611                     "ibm-935",
 612                     "935"
 613                 } );
 614 
 615         aliasCheck("x-IBM937" ,
 616                 new String[] {
 617                     "cp937", // JDK historical
 618                     "ibm937",
 619                     "ibm-937",
 620                     "937"
 621                 } );
 622 
 623         aliasCheck("IBM850" ,
 624                 new String[] {
 625                     "cp850", // JDK historical
 626                     "ibm-850",
 627                     "ibm850",
 628                     "850",
 629                     "cspc850multilingual"
 630                 } );
 631 
 632         aliasCheck("IBM852" ,
 633                 new String[] {
 634                     "cp852", // JDK historical
 635                     "ibm852",
 636                     "ibm-852",
 637                     "852",
 638                     "csPCp852"
 639                 } );
 640 
 641         aliasCheck("IBM855" ,
 642                 new String[] {
 643                     "cp855", // JDK historical
 644                     "ibm-855",
 645                     "ibm855",
 646                     "855",
 647                     "cspcp855"
 648                 } );
 649 
 650         aliasCheck("x-IBM856" ,
 651                 new String[] {
 652                     "cp856", // JDK historical
 653                     "ibm-856",
 654                     "ibm856",
 655                     "856"
 656                 } );
 657 
 658         aliasCheck("IBM857" ,
 659                 new String[] {
 660                     "cp857", // JDK historical
 661                     "ibm857",
 662                     "ibm-857",
 663                     "857",
 664                     "csIBM857"
 665                 } );
 666 
 667         aliasCheck("IBM860" ,
 668                 new String[] {
 669                     "cp860", // JDK historical
 670                     "ibm860",
 671                     "ibm-860",
 672                     "860",
 673                     "csIBM860"
 674                 } );
 675         aliasCheck("IBM861" ,
 676                 new String[] {
 677                     "cp861", // JDK historical
 678                     "ibm861",
 679                     "ibm-861",
 680                     "861",
 681                     "csIBM861"
 682                 } );
 683 
 684         aliasCheck("IBM862" ,
 685                 new String[] {
 686                     "cp862", // JDK historical
 687                     "ibm862",
 688                     "ibm-862",
 689                     "862",
 690                     "csIBM862"
 691                 } );
 692 
 693         aliasCheck("IBM863" ,
 694                 new String[] {
 695                     "cp863", // JDK historical
 696                     "ibm863",
 697                     "ibm-863",
 698                     "863",
 699                     "csIBM863"
 700                 } );
 701 
 702         aliasCheck("IBM864" ,
 703                 new String[] {
 704                     "cp864", // JDK historical
 705                     "ibm864",
 706                     "ibm-864",
 707                     "864",
 708                     "csIBM864"
 709                 } );
 710 
 711         aliasCheck("IBM865" ,
 712                 new String[] {
 713                     "cp865", // JDK historical
 714                     "ibm865",
 715                     "ibm-865",
 716                     "865",
 717                     "csIBM865"
 718                 } );
 719 
 720         aliasCheck("IBM866" , new String[] {
 721                     "cp866", // JDK historical
 722                     "ibm866",
 723                     "ibm-866",
 724                     "866",
 725                     "csIBM866"
 726                 } );
 727         aliasCheck("IBM868" ,
 728                 new String[] {
 729                     "cp868", // JDK historical
 730                     "ibm868",
 731                     "ibm-868",
 732                     "868",
 733                     "cp-ar",
 734                     "csIBM868"
 735                 } );
 736 
 737         aliasCheck("IBM869" ,
 738                 new String[] {
 739                     "cp869", // JDK historical
 740                     "ibm869",
 741                     "ibm-869",
 742                     "869",
 743                     "cp-gr",
 744                     "csIBM869"
 745                 } );
 746 
 747         aliasCheck("IBM437" ,
 748                 new String[] {
 749                     "cp437", // JDK historical
 750                     "ibm437",
 751                     "ibm-437",
 752                     "437",
 753                     "cspc8codepage437",
 754                     "windows-437"
 755                 } );
 756 
 757         aliasCheck("x-IBM874" ,
 758                 new String[] {
 759                     "cp874", // JDK historical
 760                     "ibm874",
 761                     "ibm-874",
 762                     "874"
 763                 } );
 764         aliasCheck("x-IBM737" ,
 765                 new String[] {
 766                     "cp737", // JDK historical
 767                     "ibm737",
 768                     "ibm-737",
 769                     "737"
 770                 } );
 771 
 772         aliasCheck("IBM775" ,
 773                 new String[] {
 774                     "cp775", // JDK historical
 775                     "ibm775",
 776                     "ibm-775",
 777                     "775"
 778                 } );
 779 
 780         aliasCheck("x-IBM921" ,
 781                 new String[] {
 782                     "cp921", // JDK historical
 783                     "ibm921",
 784                     "ibm-921",
 785                     "921"
 786                 } );
 787 
 788         aliasCheck("x-IBM1006" ,
 789                 new String[] {
 790                     "cp1006", // JDK historical
 791                     "ibm1006",
 792                     "ibm-1006",
 793                     "1006"
 794                 } );
 795 
 796         aliasCheck("x-IBM1046" ,
 797                 new String[] {
 798                     "cp1046", // JDK historical
 799                     "ibm1046",
 800                     "ibm-1046",
 801                     "1046"
 802                 } );
 803 
 804         aliasCheck("IBM1047" ,
 805                 new String[] {
 806                     "cp1047", // JDK historical
 807                     "ibm-1047",
 808                     "1047"
 809                 } );
 810 
 811         aliasCheck("x-IBM1098" ,
 812                 new String[] {
 813                     "cp1098", // JDK historical
 814                     "ibm1098",
 815                     "ibm-1098",
 816                     "1098",
 817                 } );
 818 
 819         aliasCheck("IBM037" ,
 820                 new String[] {
 821                     "cp037", // JDK historical
 822                     "ibm037",
 823                     "csIBM037",
 824                     "cs-ebcdic-cp-us",
 825                     "cs-ebcdic-cp-ca",
 826                     "cs-ebcdic-cp-wt",
 827                     "cs-ebcdic-cp-nl",
 828                     "ibm-037",
 829                     "ibm-37",
 830                     "cpibm37",
 831                     "037"
 832                 } );
 833 
 834         aliasCheck("x-IBM1025" ,
 835                 new String[] {
 836                     "cp1025", // JDK historical
 837                     "ibm1025",
 838                     "ibm-1025",
 839                     "1025"
 840                 } );
 841 
 842         aliasCheck("IBM1026" ,
 843                 new String[] {
 844                     "cp1026", // JDK historical
 845                     "ibm1026",
 846                     "ibm-1026",
 847                     "1026"
 848                 } );
 849 
 850         aliasCheck("x-IBM1112" ,
 851                 new String[] {
 852                     "cp1112", // JDK historical
 853                     "ibm1112",
 854                     "ibm-1112",
 855                     "1112"
 856                 } );
 857 
 858         aliasCheck("x-IBM1122" ,
 859                 new String[] {
 860                     "cp1122", // JDK historical
 861                     "ibm1122",
 862                     "ibm-1122",
 863                     "1122"
 864                 } );
 865 
 866         aliasCheck("x-IBM1123" ,
 867                 new String[] {
 868                     "cp1123", // JDK historical
 869                     "ibm1123",
 870                     "ibm-1123",
 871                     "1123"
 872                 } );
 873 
 874         aliasCheck("x-IBM1124" ,
 875                 new String[] {
 876                     "cp1124", // JDK historical
 877                     "ibm1124",
 878                     "ibm-1124",
 879                     "1124"
 880                 } );
 881 
 882         aliasCheck("x-IBM1129" ,
 883                 new String[] {
 884                     "cp1129", // JDK historical
 885                     "ibm1129",
 886                     "ibm-1129",
 887                     "1129"
 888                 } );
 889 
 890         aliasCheck("x-IBM1166" ,
 891                 new String[] {
 892                     "cp1166", // JDK historical
 893                     "ibm1166",
 894                     "ibm-1166",
 895                     "1166"
 896                 } );
 897 
 898         aliasCheck("IBM273" ,
 899                 new String[] {
 900                     "cp273", // JDK historical
 901                     "ibm273",
 902                     "ibm-273",
 903                     "273"
 904                 } );
 905 
 906         aliasCheck("IBM277" ,
 907                 new String[] {
 908                     "cp277", // JDK historical
 909                     "ibm277",
 910                     "ibm-277",
 911                     "277"
 912                 } );
 913 
 914         aliasCheck("IBM278" ,
 915                 new String[] {
 916                     "cp278", // JDK historical
 917                     "ibm278",
 918                     "ibm-278",
 919                     "278",
 920                     "ebcdic-sv",
 921                     "ebcdic-cp-se",
 922                     "csIBM278"
 923                 } );
 924 
 925         aliasCheck("IBM280" ,
 926                 new String[] {
 927                     "cp280", // JDK historical
 928                     "ibm280",
 929                     "ibm-280",
 930                     "280"
 931                 } );
 932 
 933         aliasCheck("IBM284" ,
 934                 new String[] {
 935                     "cp284", // JDK historical
 936                     "ibm284",
 937                     "ibm-284",
 938                     "284",
 939                     "csIBM284",
 940                     "cpibm284"
 941                 } );
 942 
 943         aliasCheck("IBM285" ,
 944                 new String[] {
 945                     "cp285", // JDK historical
 946                     "ibm285",
 947                     "ibm-285",
 948                     "285",
 949                     "ebcdic-cp-gb",
 950                     "ebcdic-gb",
 951                     "csIBM285",
 952                     "cpibm285"
 953                 } );
 954 
 955         aliasCheck("IBM297" ,
 956                 new String[] {
 957                     "cp297", // JDK historical
 958                     "ibm297",
 959                     "ibm-297",
 960                     "297",
 961                     "ebcdic-cp-fr",
 962                     "cpibm297",
 963                     "csIBM297",
 964                 } );
 965 
 966         aliasCheck("IBM420" ,
 967                 new String[] {
 968                     "cp420", // JDK historical
 969                     "ibm420",
 970                     "ibm-420",
 971                     "ebcdic-cp-ar1",
 972                     "420",
 973                     "csIBM420"
 974                 } );
 975 
 976         aliasCheck("IBM424" ,
 977                 new String[] {
 978                     "cp424", // JDK historical
 979                     "ibm424",
 980                     "ibm-424",
 981                     "424",
 982                     "ebcdic-cp-he",
 983                     "csIBM424"
 984                 } );
 985 
 986         aliasCheck("IBM500" ,
 987                 new String[] {
 988                     "cp500", // JDK historical
 989                     "ibm500",
 990                     "ibm-500",
 991                     "500",
 992                     "ebcdic-cp-ch",
 993                     "ebcdic-cp-bh",
 994                     "csIBM500"
 995                 } );
 996 
 997         aliasCheck("IBM-Thai" ,
 998                 new String[] {
 999                     "cp838", // JDK historical
1000                     "ibm838",
1001                     "ibm-838",
1002                     "ibm838",
1003                     "838"
1004                 } );
1005 
1006         aliasCheck("IBM870" ,
1007                 new String[] {
1008                     "cp870", // JDK historical
1009                     "ibm870",
1010                     "ibm-870",
1011                     "870",
1012                     "ebcdic-cp-roece",
1013                     "ebcdic-cp-yu",
1014                     "csIBM870"
1015                 } );
1016 
1017         aliasCheck("IBM871" ,
1018                 new String[] {
1019                     "cp871", // JDK historical
1020                     "ibm871",
1021                     "ibm-871",
1022                     "871",
1023                     "ebcdic-cp-is",
1024                     "csIBM871"
1025                 } );
1026 
1027         aliasCheck("x-IBM875" ,
1028                 new String[] {
1029                     "cp875", // JDK historical
1030                     "ibm875",
1031                     "ibm-875",
1032                     "875"
1033                 } );
1034 
1035         aliasCheck("IBM918" ,
1036                 new String[] {
1037                     "cp918", // JDK historical
1038                     "ibm-918",
1039                     "918",
1040                     "ebcdic-cp-ar2"
1041                 } );
1042 
1043         aliasCheck("x-IBM922" ,
1044                 new String[] {
1045                     "cp922", // JDK historical
1046                     "ibm922",
1047                     "ibm-922",
1048                     "922"
1049                 } );
1050 
1051         aliasCheck("x-IBM1097" ,
1052                 new String[] {
1053                     "cp1097", // JDK historical
1054                     "ibm1097",
1055                     "ibm-1097",
1056                     "1097"
1057                 } );
1058 
1059         aliasCheck("x-IBM949" ,
1060                 new String[] {
1061                     "cp949", // JDK historical
1062                     "ibm949",
1063                     "ibm-949",
1064                     "949"
1065                 } );
1066 
1067         aliasCheck("x-IBM949C" ,
1068                 new String[] {
1069                     "cp949C", // JDK historical
1070                     "ibm949C",
1071                     "ibm-949C",
1072                     "949C"
1073                 } );
1074 
1075         aliasCheck("x-IBM939" ,
1076                 new String[] {
1077                     "cp939", // JDK historical
1078                     "ibm939",
1079                     "ibm-939",
1080                     "939"
1081                 } );
1082 
1083         aliasCheck("x-IBM933" ,
1084                 new String[] {
1085                     "cp933", // JDK historical
1086                     "ibm933",
1087                     "ibm-933",
1088                     "933"
1089                 } );
1090 
1091         aliasCheck("x-IBM1381" ,
1092                 new String[] {
1093                     "cp1381", // JDK historical
1094                     "ibm1381",
1095                     "ibm-1381",
1096                     "1381"
1097                 } );
1098 
1099         aliasCheck("x-IBM1383" ,
1100                 new String[] {
1101                     "cp1383", // JDK historical
1102                     "ibm1383",
1103                     "ibm-1383",
1104                     "1383"
1105                 } );
1106 
1107         aliasCheck("x-IBM970" ,
1108                 new String[] {
1109                     "cp970", // JDK historical
1110                     "ibm970",
1111                     "ibm-970",
1112                     "ibm-eucKR",
1113                     "970"
1114                 } );
1115 
1116         aliasCheck("x-IBM964" ,
1117                 new String[] {
1118                     "cp964", // JDK historical
1119                     "ibm964",
1120                     "ibm-964",
1121                     "964"
1122                 } );
1123 
1124         aliasCheck("x-IBM33722" ,
1125                 new String[] {
1126                     "cp33722", // JDK historical
1127                     "ibm33722",
1128                     "ibm-33722",
1129                     "ibm-5050", // from IBM alias list
1130                     "ibm-33722_vascii_vpua", // from IBM alias list
1131                     "33722"
1132                 } );
1133 
1134         aliasCheck("IBM01140" ,
1135                 new String[] {
1136                     "cp1140", // JDK historical
1137                     "ccsid01140",
1138                     "cp01140",
1139                     // "ebcdic-us-037+euro"
1140                 } );
1141 
1142         aliasCheck("IBM01141" ,
1143                 new String[] {
1144                     "cp1141", // JDK historical
1145                     "ccsid01141",
1146                     "cp01141",
1147                     // "ebcdic-de-273+euro"
1148                 } );
1149 
1150         aliasCheck("IBM01142" ,
1151                 new String[] {
1152                     "cp1142", // JDK historical
1153                     "ccsid01142",
1154                     "cp01142",
1155                     // "ebcdic-no-277+euro",
1156                     // "ebcdic-dk-277+euro"
1157                 } );
1158 
1159         aliasCheck("IBM01143" ,
1160                 new String[] {
1161                     "cp1143", // JDK historical
1162                     "ccsid01143",
1163                     "cp01143",
1164                     // "ebcdic-fi-278+euro",
1165                     // "ebcdic-se-278+euro"
1166                 } );
1167 
1168         aliasCheck("IBM01144" ,
1169                 new String[] {
1170                     "cp1144", // JDK historical
1171                     "ccsid01144",
1172                     "cp01144",
1173                     // "ebcdic-it-280+euro"
1174                 } );
1175 
1176         aliasCheck("IBM01145" ,
1177                 new String[] {
1178                     "cp1145", // JDK historical
1179                     "ccsid01145",
1180                     "cp01145",
1181                     // "ebcdic-es-284+euro"
1182                 } );
1183 
1184         aliasCheck("IBM01146" ,
1185                 new String[] {
1186                     "cp1146", // JDK historical
1187                     "ccsid01146",
1188                     "cp01146",
1189                     // "ebcdic-gb-285+euro"
1190                 } );
1191 
1192         aliasCheck("IBM01147" ,
1193                 new String[] {
1194                     "cp1147", // JDK historical
1195                     "ccsid01147",
1196                     "cp01147",
1197                     // "ebcdic-fr-277+euro"
1198                 } );
1199 
1200         aliasCheck("IBM01148" ,
1201                 new String[] {
1202                     "cp1148", // JDK historical
1203                     "ccsid01148",
1204                     "cp01148",
1205                     // "ebcdic-international-500+euro"
1206                 } );
1207 
1208         aliasCheck("IBM01149" ,
1209                 new String[] {
1210                     "cp1149", // JDK historical
1211                     "ccsid01149",
1212                     "cp01149",
1213                     // "ebcdic-s-871+euro"
1214                 } );
1215 
1216         aliasCheck("IBM00858" ,
1217                 new String[] {
1218                     "cp858", // JDK historical
1219                     "ccsid00858",
1220                     "cp00858",
1221                     // "PC-Multilingual-850+euro"
1222                 } );
1223 
1224         aliasCheck("x-MacRoman",
1225                 new String[] {
1226                     "MacRoman" // JDK historical
1227                 });
1228 
1229         aliasCheck("x-MacCentralEurope",
1230                 new String[] {
1231                     "MacCentralEurope" // JDK historical
1232                 });
1233 
1234         aliasCheck("x-MacCroatian",
1235                 new String[] {
1236                     "MacCroatian" // JDK historical
1237                 });
1238 
1239 
1240         aliasCheck("x-MacCroatian",
1241                 new String[] {
1242                     "MacCroatian" // JDK historical
1243                 });
1244 
1245 
1246         aliasCheck("x-MacGreek",
1247                 new String[] {
1248                     "MacGreek" // JDK historical
1249                 });
1250 
1251         aliasCheck("x-MacCyrillic",
1252                 new String[] {
1253                     "MacCyrillic" // JDK historical
1254                 });
1255 
1256         aliasCheck("x-MacUkraine",
1257                 new String[] {
1258                     "MacUkraine" // JDK historical
1259                 });
1260 
1261         aliasCheck("x-MacTurkish",
1262                 new String[] {
1263                     "MacTurkish" // JDK historical
1264                 });
1265 
1266         aliasCheck("x-MacArabic",
1267                 new String[] {
1268                     "MacArabic" // JDK historical
1269                 });
1270 
1271         aliasCheck("x-MacHebrew",
1272                 new String[] {
1273                     "MacHebrew" // JDK historical
1274                 });
1275 
1276         aliasCheck("x-MacIceland",
1277                 new String[] {
1278                     "MacIceland" // JDK historical
1279                 });
1280 
1281         aliasCheck("x-MacRomania",
1282                 new String[] {
1283                     "MacRomania" // JDK historical
1284                 });
1285 
1286         aliasCheck("x-MacThai",
1287                 new String[] {
1288                     "MacThai" // JDK historical
1289                 });
1290 
1291         aliasCheck("x-MacSymbol",
1292                 new String[] {
1293                     "MacSymbol" // JDK historical
1294                 });
1295 
1296         aliasCheck("x-MacDingbat",
1297                 new String[] {
1298                     "MacDingbat" // JDK historical
1299                 });
1300     }
1301 }