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