1 /* 2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. 3 */ 4 /* 5 * Licensed to the Apache Software Foundation (ASF) under one or more 6 * contributor license agreements. See the NOTICE file distributed with 7 * this work for additional information regarding copyright ownership. 8 * The ASF licenses this file to You under the Apache License, Version 2.0 9 * (the "License"); you may not use this file except in compliance with 10 * the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 package com.sun.org.apache.xerces.internal.util; 22 23 import java.util.Collections; 24 import java.util.HashMap; 25 import java.util.Map; 26 27 /** 28 * EncodingMap is a convenience class which handles conversions between 29 * IANA encoding names and Java encoding names, and vice versa. The 30 * encoding names used in XML instance documents <strong>must</strong> 31 * be the IANA encoding names specified or one of the aliases for those names 32 * which IANA defines. 33 * <p> 34 * <TABLE BORDER="0" WIDTH="100%"> 35 * <TR> 36 * <TD WIDTH="33%"> 37 * <P ALIGN="CENTER"><B>Common Name</B> 38 * </TD> 39 * <TD WIDTH="15%"> 40 * <P ALIGN="CENTER"><B>Use this name in XML files</B> 41 * </TD> 42 * <TD WIDTH="12%"> 43 * <P ALIGN="CENTER"><B>Name Type</B> 44 * </TD> 45 * <TD WIDTH="31%"> 46 * <P ALIGN="CENTER"><B>Xerces converts to this Java Encoder Name</B> 47 * </TD> 48 * </TR> 49 * <TR> 50 * <TD WIDTH="33%">8 bit Unicode</TD> 51 * <TD WIDTH="15%"> 52 * <P ALIGN="CENTER">UTF-8 53 * </TD> 54 * <TD WIDTH="12%"> 55 * <P ALIGN="CENTER">IANA 56 * </TD> 57 * <TD WIDTH="31%"> 58 * <P ALIGN="CENTER">UTF8 59 * </TD> 60 * </TR> 61 * <TR> 62 * <TD WIDTH="33%">ISO Latin 1</TD> 63 * <TD WIDTH="15%"> 64 * <P ALIGN="CENTER">ISO-8859-1 65 * </TD> 66 * <TD WIDTH="12%"> 67 * <P ALIGN="CENTER">MIME 68 * </TD> 69 * <TD WIDTH="31%"> 70 * <P ALIGN="CENTER">ISO-8859-1 71 * </TD> 72 * </TR> 73 * <TR> 74 * <TD WIDTH="33%">ISO Latin 2</TD> 75 * <TD WIDTH="15%"> 76 * <P ALIGN="CENTER">ISO-8859-2 77 * </TD> 78 * <TD WIDTH="12%"> 79 * <P ALIGN="CENTER">MIME 80 * </TD> 81 * <TD WIDTH="31%"> 82 * <P ALIGN="CENTER">ISO-8859-2 83 * </TD> 84 * </TR> 85 * <TR> 86 * <TD WIDTH="33%">ISO Latin 3</TD> 87 * <TD WIDTH="15%"> 88 * <P ALIGN="CENTER">ISO-8859-3 89 * </TD> 90 * <TD WIDTH="12%"> 91 * <P ALIGN="CENTER">MIME 92 * </TD> 93 * <TD WIDTH="31%"> 94 * <P ALIGN="CENTER">ISO-8859-3 95 * </TD> 96 * </TR> 97 * <TR> 98 * <TD WIDTH="33%">ISO Latin 4</TD> 99 * <TD WIDTH="15%"> 100 * <P ALIGN="CENTER">ISO-8859-4 101 * </TD> 102 * <TD WIDTH="12%"> 103 * <P ALIGN="CENTER">MIME 104 * </TD> 105 * <TD WIDTH="31%"> 106 * <P ALIGN="CENTER">ISO-8859-4 107 * </TD> 108 * </TR> 109 * <TR> 110 * <TD WIDTH="33%">ISO Latin Cyrillic</TD> 111 * <TD WIDTH="15%"> 112 * <P ALIGN="CENTER">ISO-8859-5 113 * </TD> 114 * <TD WIDTH="12%"> 115 * <P ALIGN="CENTER">MIME 116 * </TD> 117 * <TD WIDTH="31%"> 118 * <P ALIGN="CENTER">ISO-8859-5 119 * </TD> 120 * </TR> 121 * <TR> 122 * <TD WIDTH="33%">ISO Latin Arabic</TD> 123 * <TD WIDTH="15%"> 124 * <P ALIGN="CENTER">ISO-8859-6 125 * </TD> 126 * <TD WIDTH="12%"> 127 * <P ALIGN="CENTER">MIME 128 * </TD> 129 * <TD WIDTH="31%"> 130 * <P ALIGN="CENTER">ISO-8859-6 131 * </TD> 132 * </TR> 133 * <TR> 134 * <TD WIDTH="33%">ISO Latin Greek</TD> 135 * <TD WIDTH="15%"> 136 * <P ALIGN="CENTER">ISO-8859-7 137 * </TD> 138 * <TD WIDTH="12%"> 139 * <P ALIGN="CENTER">MIME 140 * </TD> 141 * <TD WIDTH="31%"> 142 * <P ALIGN="CENTER">ISO-8859-7 143 * </TD> 144 * </TR> 145 * <TR> 146 * <TD WIDTH="33%">ISO Latin Hebrew</TD> 147 * <TD WIDTH="15%"> 148 * <P ALIGN="CENTER">ISO-8859-8 149 * </TD> 150 * <TD WIDTH="12%"> 151 * <P ALIGN="CENTER">MIME 152 * </TD> 153 * <TD WIDTH="31%"> 154 * <P ALIGN="CENTER">ISO-8859-8 155 * </TD> 156 * </TR> 157 * <TR> 158 * <TD WIDTH="33%">ISO Latin 5</TD> 159 * <TD WIDTH="15%"> 160 * <P ALIGN="CENTER">ISO-8859-9 161 * </TD> 162 * <TD WIDTH="12%"> 163 * <P ALIGN="CENTER">MIME 164 * </TD> 165 * <TD WIDTH="31%"> 166 * <P ALIGN="CENTER">ISO-8859-9 167 * </TD> 168 * </TR> 169 * <TR> 170 * <TD WIDTH="33%">EBCDIC: US</TD> 171 * <TD WIDTH="15%"> 172 * <P ALIGN="CENTER">ebcdic-cp-us 173 * </TD> 174 * <TD WIDTH="12%"> 175 * <P ALIGN="CENTER">IANA 176 * </TD> 177 * <TD WIDTH="31%"> 178 * <P ALIGN="CENTER">cp037 179 * </TD> 180 * </TR> 181 * <TR> 182 * <TD WIDTH="33%">EBCDIC: Canada</TD> 183 * <TD WIDTH="15%"> 184 * <P ALIGN="CENTER">ebcdic-cp-ca 185 * </TD> 186 * <TD WIDTH="12%"> 187 * <P ALIGN="CENTER">IANA 188 * </TD> 189 * <TD WIDTH="31%"> 190 * <P ALIGN="CENTER">cp037 191 * </TD> 192 * </TR> 193 * <TR> 194 * <TD WIDTH="33%">EBCDIC: Netherlands</TD> 195 * <TD WIDTH="15%"> 196 * <P ALIGN="CENTER">ebcdic-cp-nl 197 * </TD> 198 * <TD WIDTH="12%"> 199 * <P ALIGN="CENTER">IANA 200 * </TD> 201 * <TD WIDTH="31%"> 202 * <P ALIGN="CENTER">cp037 203 * </TD> 204 * </TR> 205 * <TR> 206 * <TD WIDTH="33%">EBCDIC: Denmark</TD> 207 * <TD WIDTH="15%"> 208 * <P ALIGN="CENTER">ebcdic-cp-dk 209 * </TD> 210 * <TD WIDTH="12%"> 211 * <P ALIGN="CENTER">IANA 212 * </TD> 213 * <TD WIDTH="31%"> 214 * <P ALIGN="CENTER">cp277 215 * </TD> 216 * </TR> 217 * <TR> 218 * <TD WIDTH="33%">EBCDIC: Norway</TD> 219 * <TD WIDTH="15%"> 220 * <P ALIGN="CENTER">ebcdic-cp-no 221 * </TD> 222 * <TD WIDTH="12%"> 223 * <P ALIGN="CENTER">IANA 224 * </TD> 225 * <TD WIDTH="31%"> 226 * <P ALIGN="CENTER">cp277 227 * </TD> 228 * </TR> 229 * <TR> 230 * <TD WIDTH="33%">EBCDIC: Finland</TD> 231 * <TD WIDTH="15%"> 232 * <P ALIGN="CENTER">ebcdic-cp-fi 233 * </TD> 234 * <TD WIDTH="12%"> 235 * <P ALIGN="CENTER">IANA 236 * </TD> 237 * <TD WIDTH="31%"> 238 * <P ALIGN="CENTER">cp278 239 * </TD> 240 * </TR> 241 * <TR> 242 * <TD WIDTH="33%">EBCDIC: Sweden</TD> 243 * <TD WIDTH="15%"> 244 * <P ALIGN="CENTER">ebcdic-cp-se 245 * </TD> 246 * <TD WIDTH="12%"> 247 * <P ALIGN="CENTER">IANA 248 * </TD> 249 * <TD WIDTH="31%"> 250 * <P ALIGN="CENTER">cp278 251 * </TD> 252 * </TR> 253 * <TR> 254 * <TD WIDTH="33%">EBCDIC: Italy</TD> 255 * <TD WIDTH="15%"> 256 * <P ALIGN="CENTER">ebcdic-cp-it 257 * </TD> 258 * <TD WIDTH="12%"> 259 * <P ALIGN="CENTER">IANA 260 * </TD> 261 * <TD WIDTH="31%"> 262 * <P ALIGN="CENTER">cp280 263 * </TD> 264 * </TR> 265 * <TR> 266 * <TD WIDTH="33%">EBCDIC: Spain, Latin America</TD> 267 * <TD WIDTH="15%"> 268 * <P ALIGN="CENTER">ebcdic-cp-es 269 * </TD> 270 * <TD WIDTH="12%"> 271 * <P ALIGN="CENTER">IANA 272 * </TD> 273 * <TD WIDTH="31%"> 274 * <P ALIGN="CENTER">cp284 275 * </TD> 276 * </TR> 277 * <TR> 278 * <TD WIDTH="33%">EBCDIC: Great Britain</TD> 279 * <TD WIDTH="15%"> 280 * <P ALIGN="CENTER">ebcdic-cp-gb 281 * </TD> 282 * <TD WIDTH="12%"> 283 * <P ALIGN="CENTER">IANA 284 * </TD> 285 * <TD WIDTH="31%"> 286 * <P ALIGN="CENTER">cp285 287 * </TD> 288 * </TR> 289 * <TR> 290 * <TD WIDTH="33%">EBCDIC: France</TD> 291 * <TD WIDTH="15%"> 292 * <P ALIGN="CENTER">ebcdic-cp-fr 293 * </TD> 294 * <TD WIDTH="12%"> 295 * <P ALIGN="CENTER">IANA 296 * </TD> 297 * <TD WIDTH="31%"> 298 * <P ALIGN="CENTER">cp297 299 * </TD> 300 * </TR> 301 * <TR> 302 * <TD WIDTH="33%">EBCDIC: Arabic</TD> 303 * <TD WIDTH="15%"> 304 * <P ALIGN="CENTER">ebcdic-cp-ar1 305 * </TD> 306 * <TD WIDTH="12%"> 307 * <P ALIGN="CENTER">IANA 308 * </TD> 309 * <TD WIDTH="31%"> 310 * <P ALIGN="CENTER">cp420 311 * </TD> 312 * </TR> 313 * <TR> 314 * <TD WIDTH="33%">EBCDIC: Hebrew</TD> 315 * <TD WIDTH="15%"> 316 * <P ALIGN="CENTER">ebcdic-cp-he 317 * </TD> 318 * <TD WIDTH="12%"> 319 * <P ALIGN="CENTER">IANA 320 * </TD> 321 * <TD WIDTH="31%"> 322 * <P ALIGN="CENTER">cp424 323 * </TD> 324 * </TR> 325 * <TR> 326 * <TD WIDTH="33%">EBCDIC: Switzerland</TD> 327 * <TD WIDTH="15%"> 328 * <P ALIGN="CENTER">ebcdic-cp-ch 329 * </TD> 330 * <TD WIDTH="12%"> 331 * <P ALIGN="CENTER">IANA 332 * </TD> 333 * <TD WIDTH="31%"> 334 * <P ALIGN="CENTER">cp500 335 * </TD> 336 * </TR> 337 * <TR> 338 * <TD WIDTH="33%">EBCDIC: Roece</TD> 339 * <TD WIDTH="15%"> 340 * <P ALIGN="CENTER">ebcdic-cp-roece 341 * </TD> 342 * <TD WIDTH="12%"> 343 * <P ALIGN="CENTER">IANA 344 * </TD> 345 * <TD WIDTH="31%"> 346 * <P ALIGN="CENTER">cp870 347 * </TD> 348 * </TR> 349 * <TR> 350 * <TD WIDTH="33%">EBCDIC: Yugoslavia</TD> 351 * <TD WIDTH="15%"> 352 * <P ALIGN="CENTER">ebcdic-cp-yu 353 * </TD> 354 * <TD WIDTH="12%"> 355 * <P ALIGN="CENTER">IANA 356 * </TD> 357 * <TD WIDTH="31%"> 358 * <P ALIGN="CENTER">cp870 359 * </TD> 360 * </TR> 361 * <TR> 362 * <TD WIDTH="33%">EBCDIC: Iceland</TD> 363 * <TD WIDTH="15%"> 364 * <P ALIGN="CENTER">ebcdic-cp-is 365 * </TD> 366 * <TD WIDTH="12%"> 367 * <P ALIGN="CENTER">IANA 368 * </TD> 369 * <TD WIDTH="31%"> 370 * <P ALIGN="CENTER">cp871 371 * </TD> 372 * </TR> 373 * <TR> 374 * <TD WIDTH="33%">EBCDIC: Urdu</TD> 375 * <TD WIDTH="15%"> 376 * <P ALIGN="CENTER">ebcdic-cp-ar2 377 * </TD> 378 * <TD WIDTH="12%"> 379 * <P ALIGN="CENTER">IANA 380 * </TD> 381 * <TD WIDTH="31%"> 382 * <P ALIGN="CENTER">cp918 383 * </TD> 384 * </TR> 385 * <TR> 386 * <TD WIDTH="33%">Chinese for PRC, mixed 1/2 byte</TD> 387 * <TD WIDTH="15%"> 388 * <P ALIGN="CENTER">gb2312 389 * </TD> 390 * <TD WIDTH="12%"> 391 * <P ALIGN="CENTER">MIME 392 * </TD> 393 * <TD WIDTH="31%"> 394 * <P ALIGN="CENTER">GB2312 395 * </TD> 396 * </TR> 397 * <TR> 398 * <TD WIDTH="33%">Extended Unix Code, packed for Japanese</TD> 399 * <TD WIDTH="15%"> 400 * <P ALIGN="CENTER">euc-jp 401 * </TD> 402 * <TD WIDTH="12%"> 403 * <P ALIGN="CENTER">MIME 404 * </TD> 405 * <TD WIDTH="31%"> 406 * <P ALIGN="CENTER">eucjis 407 * </TD> 408 * </TR> 409 * <TR> 410 * <TD WIDTH="33%">Japanese: iso-2022-jp</TD> 411 * <TD WIDTH="15%"> 412 * <P ALIGN="CENTER">iso-2020-jp 413 * </TD> 414 * <TD WIDTH="12%"> 415 * <P ALIGN="CENTER">MIME 416 * </TD> 417 * <TD WIDTH="31%"> 418 * <P ALIGN="CENTER">JIS 419 * </TD> 420 * </TR> 421 * <TR> 422 * <TD WIDTH="33%">Japanese: Shift JIS</TD> 423 * <TD WIDTH="15%"> 424 * <P ALIGN="CENTER">Shift_JIS 425 * </TD> 426 * <TD WIDTH="12%"> 427 * <P ALIGN="CENTER">MIME 428 * </TD> 429 * <TD WIDTH="31%"> 430 * <P ALIGN="CENTER">SJIS 431 * </TD> 432 * </TR> 433 * <TR> 434 * <TD WIDTH="33%">Chinese: Big5</TD> 435 * <TD WIDTH="15%"> 436 * <P ALIGN="CENTER">Big5 437 * </TD> 438 * <TD WIDTH="12%"> 439 * <P ALIGN="CENTER">MIME 440 * </TD> 441 * <TD WIDTH="31%"> 442 * <P ALIGN="CENTER">Big5 443 * </TD> 444 * </TR> 445 * <TR> 446 * <TD WIDTH="33%">Extended Unix Code, packed for Korean</TD> 447 * <TD WIDTH="15%"> 448 * <P ALIGN="CENTER">euc-kr 449 * </TD> 450 * <TD WIDTH="12%"> 451 * <P ALIGN="CENTER">MIME 452 * </TD> 453 * <TD WIDTH="31%"> 454 * <P ALIGN="CENTER">iso2022kr 455 * </TD> 456 * </TR> 457 * <TR> 458 * <TD WIDTH="33%">Cyrillic</TD> 459 * <TD WIDTH="15%"> 460 * <P ALIGN="CENTER">koi8-r 461 * </TD> 462 * <TD WIDTH="12%"> 463 * <P ALIGN="CENTER">MIME 464 * </TD> 465 * <TD WIDTH="31%"> 466 * <P ALIGN="CENTER">koi8-r 467 * </TD> 468 * </TR> 469 * </TABLE> 470 * 471 * @author TAMURA Kent, IBM 472 * @author Andy Clark, IBM 473 * 474 */ 475 public class EncodingMap { 476 477 // 478 // Data 479 // 480 481 /** fIANA2JavaMap */ 482 protected final static Map<String, String> fIANA2JavaMap; 483 484 /** fJava2IANAMap */ 485 protected final static Map<String, String> fJava2IANAMap; 486 487 // 488 // Static initialization 489 // 490 491 static { 492 Map<String, String> aIANA2JavaMap = new HashMap<>(); 493 Map<String, String> aJava2IANAMap = new HashMap<>(); 494 495 // add IANA to Java encoding mappings. 496 aIANA2JavaMap.put("BIG5", "Big5"); 497 aIANA2JavaMap.put("CSBIG5", "Big5"); 498 aIANA2JavaMap.put("CP037", "CP037"); 499 aIANA2JavaMap.put("IBM037", "CP037"); 500 aIANA2JavaMap.put("CSIBM037", "CP037"); 501 aIANA2JavaMap.put("EBCDIC-CP-US", "CP037"); 502 aIANA2JavaMap.put("EBCDIC-CP-CA", "CP037"); 503 aIANA2JavaMap.put("EBCDIC-CP-NL", "CP037"); 504 aIANA2JavaMap.put("EBCDIC-CP-WT", "CP037"); 505 aIANA2JavaMap.put("IBM273", "CP273"); 506 aIANA2JavaMap.put("CP273", "CP273"); 507 aIANA2JavaMap.put("CSIBM273", "CP273"); 508 aIANA2JavaMap.put("IBM277", "CP277"); 509 aIANA2JavaMap.put("CP277", "CP277"); 510 aIANA2JavaMap.put("CSIBM277", "CP277"); 511 aIANA2JavaMap.put("EBCDIC-CP-DK", "CP277"); 512 aIANA2JavaMap.put("EBCDIC-CP-NO", "CP277"); 513 aIANA2JavaMap.put("IBM278", "CP278"); 514 aIANA2JavaMap.put("CP278", "CP278"); 515 aIANA2JavaMap.put("CSIBM278", "CP278"); 516 aIANA2JavaMap.put("EBCDIC-CP-FI", "CP278"); 517 aIANA2JavaMap.put("EBCDIC-CP-SE", "CP278"); 518 aIANA2JavaMap.put("IBM280", "CP280"); 519 aIANA2JavaMap.put("CP280", "CP280"); 520 aIANA2JavaMap.put("CSIBM280", "CP280"); 521 aIANA2JavaMap.put("EBCDIC-CP-IT", "CP280"); 522 aIANA2JavaMap.put("IBM284", "CP284"); 523 aIANA2JavaMap.put("CP284", "CP284"); 524 aIANA2JavaMap.put("CSIBM284", "CP284"); 525 aIANA2JavaMap.put("EBCDIC-CP-ES", "CP284"); 526 aIANA2JavaMap.put("EBCDIC-CP-GB", "CP285"); 527 aIANA2JavaMap.put("IBM285", "CP285"); 528 aIANA2JavaMap.put("CP285", "CP285"); 529 aIANA2JavaMap.put("CSIBM285", "CP285"); 530 aIANA2JavaMap.put("EBCDIC-JP-KANA", "CP290"); 531 aIANA2JavaMap.put("IBM290", "CP290"); 532 aIANA2JavaMap.put("CP290", "CP290"); 533 aIANA2JavaMap.put("CSIBM290", "CP290"); 534 aIANA2JavaMap.put("EBCDIC-CP-FR", "CP297"); 535 aIANA2JavaMap.put("IBM297", "CP297"); 536 aIANA2JavaMap.put("CP297", "CP297"); 537 aIANA2JavaMap.put("CSIBM297", "CP297"); 538 aIANA2JavaMap.put("EBCDIC-CP-AR1", "CP420"); 539 aIANA2JavaMap.put("IBM420", "CP420"); 540 aIANA2JavaMap.put("CP420", "CP420"); 541 aIANA2JavaMap.put("CSIBM420", "CP420"); 542 aIANA2JavaMap.put("EBCDIC-CP-HE", "CP424"); 543 aIANA2JavaMap.put("IBM424", "CP424"); 544 aIANA2JavaMap.put("CP424", "CP424"); 545 aIANA2JavaMap.put("CSIBM424", "CP424"); 546 aIANA2JavaMap.put("IBM437", "CP437"); 547 aIANA2JavaMap.put("437", "CP437"); 548 aIANA2JavaMap.put("CP437", "CP437"); 549 aIANA2JavaMap.put("CSPC8CODEPAGE437", "CP437"); 550 aIANA2JavaMap.put("EBCDIC-CP-CH", "CP500"); 551 aIANA2JavaMap.put("IBM500", "CP500"); 552 aIANA2JavaMap.put("CP500", "CP500"); 553 aIANA2JavaMap.put("CSIBM500", "CP500"); 554 aIANA2JavaMap.put("EBCDIC-CP-CH", "CP500"); 555 aIANA2JavaMap.put("EBCDIC-CP-BE", "CP500"); 556 aIANA2JavaMap.put("IBM775", "CP775"); 557 aIANA2JavaMap.put("CP775", "CP775"); 558 aIANA2JavaMap.put("CSPC775BALTIC", "CP775"); 559 aIANA2JavaMap.put("IBM850", "CP850"); 560 aIANA2JavaMap.put("850", "CP850"); 561 aIANA2JavaMap.put("CP850", "CP850"); 562 aIANA2JavaMap.put("CSPC850MULTILINGUAL", "CP850"); 563 aIANA2JavaMap.put("IBM852", "CP852"); 564 aIANA2JavaMap.put("852", "CP852"); 565 aIANA2JavaMap.put("CP852", "CP852"); 566 aIANA2JavaMap.put("CSPCP852", "CP852"); 567 aIANA2JavaMap.put("IBM855", "CP855"); 568 aIANA2JavaMap.put("855", "CP855"); 569 aIANA2JavaMap.put("CP855", "CP855"); 570 aIANA2JavaMap.put("CSIBM855", "CP855"); 571 aIANA2JavaMap.put("IBM857", "CP857"); 572 aIANA2JavaMap.put("857", "CP857"); 573 aIANA2JavaMap.put("CP857", "CP857"); 574 aIANA2JavaMap.put("CSIBM857", "CP857"); 575 aIANA2JavaMap.put("IBM00858", "CP858"); 576 aIANA2JavaMap.put("CP00858", "CP858"); 577 aIANA2JavaMap.put("CCSID00858", "CP858"); 578 aIANA2JavaMap.put("IBM860", "CP860"); 579 aIANA2JavaMap.put("860", "CP860"); 580 aIANA2JavaMap.put("CP860", "CP860"); 581 aIANA2JavaMap.put("CSIBM860", "CP860"); 582 aIANA2JavaMap.put("IBM861", "CP861"); 583 aIANA2JavaMap.put("861", "CP861"); 584 aIANA2JavaMap.put("CP861", "CP861"); 585 aIANA2JavaMap.put("CP-IS", "CP861"); 586 aIANA2JavaMap.put("CSIBM861", "CP861"); 587 aIANA2JavaMap.put("IBM862", "CP862"); 588 aIANA2JavaMap.put("862", "CP862"); 589 aIANA2JavaMap.put("CP862", "CP862"); 590 aIANA2JavaMap.put("CSPC862LATINHEBREW", "CP862"); 591 aIANA2JavaMap.put("IBM863", "CP863"); 592 aIANA2JavaMap.put("863", "CP863"); 593 aIANA2JavaMap.put("CP863", "CP863"); 594 aIANA2JavaMap.put("CSIBM863", "CP863"); 595 aIANA2JavaMap.put("IBM864", "CP864"); 596 aIANA2JavaMap.put("CP864", "CP864"); 597 aIANA2JavaMap.put("CSIBM864", "CP864"); 598 aIANA2JavaMap.put("IBM865", "CP865"); 599 aIANA2JavaMap.put("865", "CP865"); 600 aIANA2JavaMap.put("CP865", "CP865"); 601 aIANA2JavaMap.put("CSIBM865", "CP865"); 602 aIANA2JavaMap.put("IBM866", "CP866"); 603 aIANA2JavaMap.put("866", "CP866"); 604 aIANA2JavaMap.put("CP866", "CP866"); 605 aIANA2JavaMap.put("CSIBM866", "CP866"); 606 aIANA2JavaMap.put("IBM868", "CP868"); 607 aIANA2JavaMap.put("CP868", "CP868"); 608 aIANA2JavaMap.put("CSIBM868", "CP868"); 609 aIANA2JavaMap.put("CP-AR", "CP868"); 610 aIANA2JavaMap.put("IBM869", "CP869"); 611 aIANA2JavaMap.put("CP869", "CP869"); 612 aIANA2JavaMap.put("CSIBM869", "CP869"); 613 aIANA2JavaMap.put("CP-GR", "CP869"); 614 aIANA2JavaMap.put("IBM870", "CP870"); 615 aIANA2JavaMap.put("CP870", "CP870"); 616 aIANA2JavaMap.put("CSIBM870", "CP870"); 617 aIANA2JavaMap.put("EBCDIC-CP-ROECE", "CP870"); 618 aIANA2JavaMap.put("EBCDIC-CP-YU", "CP870"); 619 aIANA2JavaMap.put("IBM871", "CP871"); 620 aIANA2JavaMap.put("CP871", "CP871"); 621 aIANA2JavaMap.put("CSIBM871", "CP871"); 622 aIANA2JavaMap.put("EBCDIC-CP-IS", "CP871"); 623 aIANA2JavaMap.put("IBM918", "CP918"); 624 aIANA2JavaMap.put("CP918", "CP918"); 625 aIANA2JavaMap.put("CSIBM918", "CP918"); 626 aIANA2JavaMap.put("EBCDIC-CP-AR2", "CP918"); 627 aIANA2JavaMap.put("IBM00924", "CP924"); 628 aIANA2JavaMap.put("CP00924", "CP924"); 629 aIANA2JavaMap.put("CCSID00924", "CP924"); 630 // is this an error??? 631 aIANA2JavaMap.put("EBCDIC-LATIN9--EURO", "CP924"); 632 aIANA2JavaMap.put("IBM1026", "CP1026"); 633 aIANA2JavaMap.put("CP1026", "CP1026"); 634 aIANA2JavaMap.put("CSIBM1026", "CP1026"); 635 aIANA2JavaMap.put("IBM01140", "Cp1140"); 636 aIANA2JavaMap.put("CP01140", "Cp1140"); 637 aIANA2JavaMap.put("CCSID01140", "Cp1140"); 638 aIANA2JavaMap.put("IBM01141", "Cp1141"); 639 aIANA2JavaMap.put("CP01141", "Cp1141"); 640 aIANA2JavaMap.put("CCSID01141", "Cp1141"); 641 aIANA2JavaMap.put("IBM01142", "Cp1142"); 642 aIANA2JavaMap.put("CP01142", "Cp1142"); 643 aIANA2JavaMap.put("CCSID01142", "Cp1142"); 644 aIANA2JavaMap.put("IBM01143", "Cp1143"); 645 aIANA2JavaMap.put("CP01143", "Cp1143"); 646 aIANA2JavaMap.put("CCSID01143", "Cp1143"); 647 aIANA2JavaMap.put("IBM01144", "Cp1144"); 648 aIANA2JavaMap.put("CP01144", "Cp1144"); 649 aIANA2JavaMap.put("CCSID01144", "Cp1144"); 650 aIANA2JavaMap.put("IBM01145", "Cp1145"); 651 aIANA2JavaMap.put("CP01145", "Cp1145"); 652 aIANA2JavaMap.put("CCSID01145", "Cp1145"); 653 aIANA2JavaMap.put("IBM01146", "Cp1146"); 654 aIANA2JavaMap.put("CP01146", "Cp1146"); 655 aIANA2JavaMap.put("CCSID01146", "Cp1146"); 656 aIANA2JavaMap.put("IBM01147", "Cp1147"); 657 aIANA2JavaMap.put("CP01147", "Cp1147"); 658 aIANA2JavaMap.put("CCSID01147", "Cp1147"); 659 aIANA2JavaMap.put("IBM01148", "Cp1148"); 660 aIANA2JavaMap.put("CP01148", "Cp1148"); 661 aIANA2JavaMap.put("CCSID01148", "Cp1148"); 662 aIANA2JavaMap.put("IBM01149", "Cp1149"); 663 aIANA2JavaMap.put("CP01149", "Cp1149"); 664 aIANA2JavaMap.put("CCSID01149", "Cp1149"); 665 aIANA2JavaMap.put("EUC-JP", "EUCJIS"); 666 aIANA2JavaMap.put("CSEUCPKDFMTJAPANESE", "EUCJIS"); 667 aIANA2JavaMap.put("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", "EUCJIS"); 668 aIANA2JavaMap.put("EUC-KR", "KSC5601"); 669 aIANA2JavaMap.put("CSEUCKR", "KSC5601"); 670 aIANA2JavaMap.put("KS_C_5601-1987", "KS_C_5601-1987"); 671 aIANA2JavaMap.put("ISO-IR-149", "KS_C_5601-1987"); 672 aIANA2JavaMap.put("KS_C_5601-1989", "KS_C_5601-1987"); 673 aIANA2JavaMap.put("KSC_5601", "KS_C_5601-1987"); 674 aIANA2JavaMap.put("KOREAN", "KS_C_5601-1987"); 675 aIANA2JavaMap.put("CSKSC56011987", "KS_C_5601-1987"); 676 aIANA2JavaMap.put("GB2312", "GB2312"); 677 aIANA2JavaMap.put("CSGB2312", "GB2312"); 678 aIANA2JavaMap.put("ISO-2022-JP", "JIS"); 679 aIANA2JavaMap.put("CSISO2022JP", "JIS"); 680 aIANA2JavaMap.put("ISO-2022-KR", "ISO2022KR"); 681 aIANA2JavaMap.put("CSISO2022KR", "ISO2022KR"); 682 aIANA2JavaMap.put("ISO-2022-CN", "ISO2022CN"); 683 684 aIANA2JavaMap.put("X0201", "JIS0201"); 685 aIANA2JavaMap.put("CSISO13JISC6220JP", "JIS0201"); 686 aIANA2JavaMap.put("X0208", "JIS0208"); 687 aIANA2JavaMap.put("ISO-IR-87", "JIS0208"); 688 aIANA2JavaMap.put("X0208dbiJIS_X0208-1983", "JIS0208"); 689 aIANA2JavaMap.put("CSISO87JISX0208", "JIS0208"); 690 aIANA2JavaMap.put("X0212", "JIS0212"); 691 aIANA2JavaMap.put("ISO-IR-159", "JIS0212"); 692 aIANA2JavaMap.put("CSISO159JISX02121990", "JIS0212"); 693 aIANA2JavaMap.put("GB18030", "GB18030"); 694 aIANA2JavaMap.put("GBK", "GBK"); 695 aIANA2JavaMap.put("CP936", "GBK"); 696 aIANA2JavaMap.put("MS936", "GBK"); 697 aIANA2JavaMap.put("WINDOWS-936", "GBK"); 698 aIANA2JavaMap.put("SHIFT_JIS", "SJIS"); 699 aIANA2JavaMap.put("CSSHIFTJIS", "SJIS"); 700 aIANA2JavaMap.put("MS_KANJI", "SJIS"); 701 aIANA2JavaMap.put("WINDOWS-31J", "MS932"); 702 aIANA2JavaMap.put("CSWINDOWS31J", "MS932"); 703 704 // Add support for Cp1252 and its friends 705 aIANA2JavaMap.put("WINDOWS-1250", "Cp1250"); 706 aIANA2JavaMap.put("WINDOWS-1251", "Cp1251"); 707 aIANA2JavaMap.put("WINDOWS-1252", "Cp1252"); 708 aIANA2JavaMap.put("WINDOWS-1253", "Cp1253"); 709 aIANA2JavaMap.put("WINDOWS-1254", "Cp1254"); 710 aIANA2JavaMap.put("WINDOWS-1255", "Cp1255"); 711 aIANA2JavaMap.put("WINDOWS-1256", "Cp1256"); 712 aIANA2JavaMap.put("WINDOWS-1257", "Cp1257"); 713 aIANA2JavaMap.put("WINDOWS-1258", "Cp1258"); 714 aIANA2JavaMap.put("TIS-620", "TIS620"); 715 716 aIANA2JavaMap.put("ISO-8859-1", "ISO8859_1"); 717 aIANA2JavaMap.put("ISO-IR-100", "ISO8859_1"); 718 aIANA2JavaMap.put("ISO_8859-1", "ISO8859_1"); 719 aIANA2JavaMap.put("LATIN1", "ISO8859_1"); 720 aIANA2JavaMap.put("CSISOLATIN1", "ISO8859_1"); 721 aIANA2JavaMap.put("L1", "ISO8859_1"); 722 aIANA2JavaMap.put("IBM819", "ISO8859_1"); 723 aIANA2JavaMap.put("CP819", "ISO8859_1"); 724 725 aIANA2JavaMap.put("ISO-8859-2", "ISO8859_2"); 726 aIANA2JavaMap.put("ISO-IR-101", "ISO8859_2"); 727 aIANA2JavaMap.put("ISO_8859-2", "ISO8859_2"); 728 aIANA2JavaMap.put("LATIN2", "ISO8859_2"); 729 aIANA2JavaMap.put("CSISOLATIN2", "ISO8859_2"); 730 aIANA2JavaMap.put("L2", "ISO8859_2"); 731 732 aIANA2JavaMap.put("ISO-8859-3", "ISO8859_3"); 733 aIANA2JavaMap.put("ISO-IR-109", "ISO8859_3"); 734 aIANA2JavaMap.put("ISO_8859-3", "ISO8859_3"); 735 aIANA2JavaMap.put("LATIN3", "ISO8859_3"); 736 aIANA2JavaMap.put("CSISOLATIN3", "ISO8859_3"); 737 aIANA2JavaMap.put("L3", "ISO8859_3"); 738 739 aIANA2JavaMap.put("ISO-8859-4", "ISO8859_4"); 740 aIANA2JavaMap.put("ISO-IR-110", "ISO8859_4"); 741 aIANA2JavaMap.put("ISO_8859-4", "ISO8859_4"); 742 aIANA2JavaMap.put("LATIN4", "ISO8859_4"); 743 aIANA2JavaMap.put("CSISOLATIN4", "ISO8859_4"); 744 aIANA2JavaMap.put("L4", "ISO8859_4"); 745 746 aIANA2JavaMap.put("ISO-8859-5", "ISO8859_5"); 747 aIANA2JavaMap.put("ISO-IR-144", "ISO8859_5"); 748 aIANA2JavaMap.put("ISO_8859-5", "ISO8859_5"); 749 aIANA2JavaMap.put("CYRILLIC", "ISO8859_5"); 750 aIANA2JavaMap.put("CSISOLATINCYRILLIC", "ISO8859_5"); 751 752 aIANA2JavaMap.put("ISO-8859-6", "ISO8859_6"); 753 aIANA2JavaMap.put("ISO-IR-127", "ISO8859_6"); 754 aIANA2JavaMap.put("ISO_8859-6", "ISO8859_6"); 755 aIANA2JavaMap.put("ECMA-114", "ISO8859_6"); 756 aIANA2JavaMap.put("ASMO-708", "ISO8859_6"); 757 aIANA2JavaMap.put("ARABIC", "ISO8859_6"); 758 aIANA2JavaMap.put("CSISOLATINARABIC", "ISO8859_6"); 759 760 aIANA2JavaMap.put("ISO-8859-7", "ISO8859_7"); 761 aIANA2JavaMap.put("ISO-IR-126", "ISO8859_7"); 762 aIANA2JavaMap.put("ISO_8859-7", "ISO8859_7"); 763 aIANA2JavaMap.put("ELOT_928", "ISO8859_7"); 764 aIANA2JavaMap.put("ECMA-118", "ISO8859_7"); 765 aIANA2JavaMap.put("GREEK", "ISO8859_7"); 766 aIANA2JavaMap.put("CSISOLATINGREEK", "ISO8859_7"); 767 aIANA2JavaMap.put("GREEK8", "ISO8859_7"); 768 769 aIANA2JavaMap.put("ISO-8859-8", "ISO8859_8"); 770 aIANA2JavaMap.put("ISO-8859-8-I", "ISO8859_8"); // added since this encoding only differs w.r.t. presentation 771 aIANA2JavaMap.put("ISO-IR-138", "ISO8859_8"); 772 aIANA2JavaMap.put("ISO_8859-8", "ISO8859_8"); 773 aIANA2JavaMap.put("HEBREW", "ISO8859_8"); 774 aIANA2JavaMap.put("CSISOLATINHEBREW", "ISO8859_8"); 775 776 aIANA2JavaMap.put("ISO-8859-9", "ISO8859_9"); 777 aIANA2JavaMap.put("ISO-IR-148", "ISO8859_9"); 778 aIANA2JavaMap.put("ISO_8859-9", "ISO8859_9"); 779 aIANA2JavaMap.put("LATIN5", "ISO8859_9"); 780 aIANA2JavaMap.put("CSISOLATIN5", "ISO8859_9"); 781 aIANA2JavaMap.put("L5", "ISO8859_9"); 782 783 aIANA2JavaMap.put("ISO-8859-13", "ISO8859_13"); 784 785 aIANA2JavaMap.put("ISO-8859-15", "ISO8859_15_FDIS"); 786 aIANA2JavaMap.put("ISO_8859-15", "ISO8859_15_FDIS"); 787 aIANA2JavaMap.put("LATIN-9", "ISO8859_15_FDIS"); 788 789 aIANA2JavaMap.put("KOI8-R", "KOI8_R"); 790 aIANA2JavaMap.put("CSKOI8R", "KOI8_R"); 791 aIANA2JavaMap.put("US-ASCII", "ASCII"); 792 aIANA2JavaMap.put("ISO-IR-6", "ASCII"); 793 aIANA2JavaMap.put("ANSI_X3.4-1968", "ASCII"); 794 aIANA2JavaMap.put("ANSI_X3.4-1986", "ASCII"); 795 aIANA2JavaMap.put("ISO_646.IRV:1991", "ASCII"); 796 aIANA2JavaMap.put("ASCII", "ASCII"); 797 aIANA2JavaMap.put("CSASCII", "ASCII"); 798 aIANA2JavaMap.put("ISO646-US", "ASCII"); 799 aIANA2JavaMap.put("US", "ASCII"); 800 aIANA2JavaMap.put("IBM367", "ASCII"); 801 aIANA2JavaMap.put("CP367", "ASCII"); 802 aIANA2JavaMap.put("UTF-8", "UTF8"); 803 aIANA2JavaMap.put("UTF-16", "UTF-16"); 804 aIANA2JavaMap.put("UTF-16BE", "UnicodeBig"); 805 aIANA2JavaMap.put("UTF-16LE", "UnicodeLittle"); 806 807 // support for 1047, as proposed to be added to the 808 // IANA registry in 809 // http://lists.w3.org/Archives/Public/ietf-charset/2002JulSep/0049.html 810 aIANA2JavaMap.put("IBM-1047", "Cp1047"); 811 aIANA2JavaMap.put("IBM1047", "Cp1047"); 812 aIANA2JavaMap.put("CP1047", "Cp1047"); 813 814 // Adding new aliases as proposed in 815 // http://lists.w3.org/Archives/Public/ietf-charset/2002JulSep/0058.html 816 aIANA2JavaMap.put("IBM-37", "CP037"); 817 aIANA2JavaMap.put("IBM-273", "CP273"); 818 aIANA2JavaMap.put("IBM-277", "CP277"); 819 aIANA2JavaMap.put("IBM-278", "CP278"); 820 aIANA2JavaMap.put("IBM-280", "CP280"); 821 aIANA2JavaMap.put("IBM-284", "CP284"); 822 aIANA2JavaMap.put("IBM-285", "CP285"); 823 aIANA2JavaMap.put("IBM-290", "CP290"); 824 aIANA2JavaMap.put("IBM-297", "CP297"); 825 aIANA2JavaMap.put("IBM-420", "CP420"); 826 aIANA2JavaMap.put("IBM-424", "CP424"); 827 aIANA2JavaMap.put("IBM-437", "CP437"); 828 aIANA2JavaMap.put("IBM-500", "CP500"); 829 aIANA2JavaMap.put("IBM-775", "CP775"); 830 aIANA2JavaMap.put("IBM-850", "CP850"); 831 aIANA2JavaMap.put("IBM-852", "CP852"); 832 aIANA2JavaMap.put("IBM-855", "CP855"); 833 aIANA2JavaMap.put("IBM-857", "CP857"); 834 aIANA2JavaMap.put("IBM-858", "CP858"); 835 aIANA2JavaMap.put("IBM-860", "CP860"); 836 aIANA2JavaMap.put("IBM-861", "CP861"); 837 aIANA2JavaMap.put("IBM-862", "CP862"); 838 aIANA2JavaMap.put("IBM-863", "CP863"); 839 aIANA2JavaMap.put("IBM-864", "CP864"); 840 aIANA2JavaMap.put("IBM-865", "CP865"); 841 aIANA2JavaMap.put("IBM-866", "CP866"); 842 aIANA2JavaMap.put("IBM-868", "CP868"); 843 aIANA2JavaMap.put("IBM-869", "CP869"); 844 aIANA2JavaMap.put("IBM-870", "CP870"); 845 aIANA2JavaMap.put("IBM-871", "CP871"); 846 aIANA2JavaMap.put("IBM-918", "CP918"); 847 aIANA2JavaMap.put("IBM-924", "CP924"); 848 aIANA2JavaMap.put("IBM-1026", "CP1026"); 849 aIANA2JavaMap.put("IBM-1140", "Cp1140"); 850 aIANA2JavaMap.put("IBM-1141", "Cp1141"); 851 aIANA2JavaMap.put("IBM-1142", "Cp1142"); 852 aIANA2JavaMap.put("IBM-1143", "Cp1143"); 853 aIANA2JavaMap.put("IBM-1144", "Cp1144"); 854 aIANA2JavaMap.put("IBM-1145", "Cp1145"); 855 aIANA2JavaMap.put("IBM-1146", "Cp1146"); 856 aIANA2JavaMap.put("IBM-1147", "Cp1147"); 857 aIANA2JavaMap.put("IBM-1148", "Cp1148"); 858 aIANA2JavaMap.put("IBM-1149", "Cp1149"); 859 aIANA2JavaMap.put("IBM-819", "ISO8859_1"); 860 aIANA2JavaMap.put("IBM-367", "ASCII"); 861 862 fIANA2JavaMap = Collections.unmodifiableMap(aIANA2JavaMap); 863 // REVISIT: 864 // j:CNS11643 -> EUC-TW? 865 // ISO-2022-CN? ISO-2022-CN-EXT? 866 867 // add Java to IANA encoding mappings 868 //aJava2IANAMap.put("8859_1", "US-ASCII"); // ? 869 aJava2IANAMap.put("ISO8859_1", "ISO-8859-1"); 870 aJava2IANAMap.put("ISO8859_2", "ISO-8859-2"); 871 aJava2IANAMap.put("ISO8859_3", "ISO-8859-3"); 872 aJava2IANAMap.put("ISO8859_4", "ISO-8859-4"); 873 aJava2IANAMap.put("ISO8859_5", "ISO-8859-5"); 874 aJava2IANAMap.put("ISO8859_6", "ISO-8859-6"); 875 aJava2IANAMap.put("ISO8859_7", "ISO-8859-7"); 876 aJava2IANAMap.put("ISO8859_8", "ISO-8859-8"); 877 aJava2IANAMap.put("ISO8859_9", "ISO-8859-9"); 878 aJava2IANAMap.put("ISO8859_13", "ISO-8859-13"); 879 aJava2IANAMap.put("ISO8859_15", "ISO-8859-15"); 880 aJava2IANAMap.put("ISO8859_15_FDIS", "ISO-8859-15"); 881 aJava2IANAMap.put("Big5", "BIG5"); 882 aJava2IANAMap.put("CP037", "EBCDIC-CP-US"); 883 aJava2IANAMap.put("CP273", "IBM273"); 884 aJava2IANAMap.put("CP277", "EBCDIC-CP-DK"); 885 aJava2IANAMap.put("CP278", "EBCDIC-CP-FI"); 886 aJava2IANAMap.put("CP280", "EBCDIC-CP-IT"); 887 aJava2IANAMap.put("CP284", "EBCDIC-CP-ES"); 888 aJava2IANAMap.put("CP285", "EBCDIC-CP-GB"); 889 aJava2IANAMap.put("CP290", "EBCDIC-JP-KANA"); 890 aJava2IANAMap.put("CP297", "EBCDIC-CP-FR"); 891 aJava2IANAMap.put("CP420", "EBCDIC-CP-AR1"); 892 aJava2IANAMap.put("CP424", "EBCDIC-CP-HE"); 893 aJava2IANAMap.put("CP437", "IBM437"); 894 aJava2IANAMap.put("CP500", "EBCDIC-CP-CH"); 895 aJava2IANAMap.put("CP775", "IBM775"); 896 aJava2IANAMap.put("CP850", "IBM850"); 897 aJava2IANAMap.put("CP852", "IBM852"); 898 aJava2IANAMap.put("CP855", "IBM855"); 899 aJava2IANAMap.put("CP857", "IBM857"); 900 aJava2IANAMap.put("CP858", "IBM00858"); 901 aJava2IANAMap.put("CP860", "IBM860"); 902 aJava2IANAMap.put("CP861", "IBM861"); 903 aJava2IANAMap.put("CP862", "IBM862"); 904 aJava2IANAMap.put("CP863", "IBM863"); 905 aJava2IANAMap.put("CP864", "IBM864"); 906 aJava2IANAMap.put("CP865", "IBM865"); 907 aJava2IANAMap.put("CP866", "IBM866"); 908 aJava2IANAMap.put("CP868", "IBM868"); 909 aJava2IANAMap.put("CP869", "IBM869"); 910 aJava2IANAMap.put("CP870", "EBCDIC-CP-ROECE"); 911 aJava2IANAMap.put("CP871", "EBCDIC-CP-IS"); 912 aJava2IANAMap.put("CP918", "EBCDIC-CP-AR2"); 913 aJava2IANAMap.put("CP924", "IBM00924"); 914 aJava2IANAMap.put("CP1026", "IBM1026"); 915 aJava2IANAMap.put("CP1140", "IBM01140"); 916 aJava2IANAMap.put("CP1141", "IBM01141"); 917 aJava2IANAMap.put("CP1142", "IBM01142"); 918 aJava2IANAMap.put("CP1143", "IBM01143"); 919 aJava2IANAMap.put("CP1144", "IBM01144"); 920 aJava2IANAMap.put("CP1145", "IBM01145"); 921 aJava2IANAMap.put("CP1146", "IBM01146"); 922 aJava2IANAMap.put("CP1147", "IBM01147"); 923 aJava2IANAMap.put("CP1148", "IBM01148"); 924 aJava2IANAMap.put("CP1149", "IBM01149"); 925 aJava2IANAMap.put("EUCJIS", "EUC-JP"); 926 aJava2IANAMap.put("KS_C_5601-1987", "KS_C_5601-1987"); 927 aJava2IANAMap.put("GB2312", "GB2312"); 928 aJava2IANAMap.put("ISO2022KR", "ISO-2022-KR"); 929 aJava2IANAMap.put("ISO2022CN", "ISO-2022-CN"); 930 aJava2IANAMap.put("JIS", "ISO-2022-JP"); 931 aJava2IANAMap.put("KOI8_R", "KOI8-R"); 932 aJava2IANAMap.put("KSC5601", "EUC-KR"); 933 aJava2IANAMap.put("GB18030", "GB18030"); 934 aJava2IANAMap.put("GBK", "GBK"); 935 aJava2IANAMap.put("SJIS", "SHIFT_JIS"); 936 aJava2IANAMap.put("MS932", "WINDOWS-31J"); 937 aJava2IANAMap.put("UTF8", "UTF-8"); 938 aJava2IANAMap.put("Unicode", "UTF-16"); 939 aJava2IANAMap.put("UnicodeBig", "UTF-16BE"); 940 aJava2IANAMap.put("UnicodeLittle", "UTF-16LE"); 941 aJava2IANAMap.put("JIS0201", "X0201"); 942 aJava2IANAMap.put("JIS0208", "X0208"); 943 aJava2IANAMap.put("JIS0212", "ISO-IR-159"); 944 945 // proposed addition (see above for details): 946 aJava2IANAMap.put("CP1047", "IBM1047"); 947 948 fJava2IANAMap = Collections.unmodifiableMap(aIANA2JavaMap); 949 } // <clinit>() 950 951 // 952 // Constructors 953 // 954 955 /** Default constructor. */ EncodingMap()956 public EncodingMap() {} 957 958 // 959 // Public static methods 960 // 961 962 /** 963 * Returns the Java encoding name for the specified IANA encoding name. 964 * 965 * @param ianaEncoding The IANA encoding name. 966 */ getIANA2JavaMapping(String ianaEncoding)967 public static String getIANA2JavaMapping(String ianaEncoding) { 968 return fIANA2JavaMap.get(ianaEncoding); 969 } // getIANA2JavaMapping(String):String 970 971 /** 972 * Returns the IANA encoding name for the specified Java encoding name. 973 * 974 * @param javaEncoding The Java encoding name. 975 */ getJava2IANAMapping(String javaEncoding)976 public static String getJava2IANAMapping(String javaEncoding) { 977 return fJava2IANAMap.get(javaEncoding); 978 } // getJava2IANAMapping(String):String 979 980 981 } // class EncodingMap 982