Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/webdav/lib/util/MIME2Java.java


1   /*
2    * $Header: /home/cvs/jakarta-slide/webdavclient/clientlib/src/java/org/apache/webdav/lib/util/MIME2Java.java,v 1.1 2004/08/02 15:45:49 unico Exp $
3    * $Revision: 1.1 $
4    * $Date: 2004/08/02 15:45:49 $
5    *
6    * ====================================================================
7    *
8    * Copyright 1999-2002 The Apache Software Foundation 
9    *
10   * Licensed under the Apache License, Version 2.0 (the "License");
11   * you may not use this file except in compliance with the License.
12   * You may obtain a copy of the License at
13   *
14   *     http://www.apache.org/licenses/LICENSE-2.0
15   *
16   * Unless required by applicable law or agreed to in writing, software
17   * distributed under the License is distributed on an "AS IS" BASIS,
18   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   * See the License for the specific language governing permissions and
20   * limitations under the License.
21   *
22   */
23  
24  package org.apache.webdav.lib.util;
25  
26  import java.util.*;
27  
28  /**
29   * MIME2Java is a convenience class which handles conversions between MIME charset names
30   * and Java encoding names.
31   * <p>The supported XML encodings are the intersection of XML-supported code sets and those 
32   * supported in JDK 1.1.
33   * <p>MIME charset names are used on <var>xmlEncoding</var> parameters to methods such
34   * as <code>TXDocument#setEncoding</code> and <code>DTD#setEncoding</code>.
35   * <p>Java encoding names are used on <var>encoding</var> parameters to
36   * methods such as <code>TXDocument#printWithFormat</code> and <code>DTD#printExternal</code>. 
37   * <P>
38   * <TABLE BORDER="0" WIDTH="100%">
39   *  <TR>
40   *      <TD WIDTH="33%">
41   *          <P ALIGN="CENTER"><B>Common Name</B>
42   *      </TD>
43   *      <TD WIDTH="15%">
44   *          <P ALIGN="CENTER"><B>Use this name in XML files</B>
45   *      </TD>
46   *      <TD WIDTH="12%">
47   *          <P ALIGN="CENTER"><B>Name Type</B>
48   *      </TD>
49   *      <TD WIDTH="31%">
50   *          <P ALIGN="CENTER"><B>Xerces converts to this Java Encoder Name</B>
51   *      </TD>
52   *  </TR>
53   *  <TR>
54   *      <TD WIDTH="33%">8 bit Unicode</TD>
55   *      <TD WIDTH="15%">
56   *          <P ALIGN="CENTER">UTF-8
57   *      </TD>
58   *      <TD WIDTH="12%">
59   *          <P ALIGN="CENTER">IANA
60   *      </TD>
61   *      <TD WIDTH="31%">
62   *          <P ALIGN="CENTER">UTF8
63   *      </TD>
64   *  </TR>
65   *  <TR>
66   *      <TD WIDTH="33%">ISO Latin 1</TD>
67   *      <TD WIDTH="15%">
68   *          <P ALIGN="CENTER">ISO-8859-1
69   *      </TD>
70   *      <TD WIDTH="12%">
71   *          <P ALIGN="CENTER">MIME
72   *      </TD>
73   *      <TD WIDTH="31%">
74   *          <P ALIGN="CENTER">ISO-8859-1
75   *      </TD>
76   *  </TR>
77   *  <TR>
78   *      <TD WIDTH="33%">ISO Latin 2</TD>
79   *      <TD WIDTH="15%">
80   *          <P ALIGN="CENTER">ISO-8859-2
81   *      </TD>
82   *      <TD WIDTH="12%">
83   *          <P ALIGN="CENTER">MIME
84   *      </TD>
85   *      <TD WIDTH="31%">
86   *          <P ALIGN="CENTER">ISO-8859-2
87   *      </TD>
88   *  </TR>
89   *  <TR>
90   *      <TD WIDTH="33%">ISO Latin 3</TD>
91   *      <TD WIDTH="15%">
92   *          <P ALIGN="CENTER">ISO-8859-3
93   *      </TD>
94   *      <TD WIDTH="12%">
95   *          <P ALIGN="CENTER">MIME
96   *      </TD>
97   *      <TD WIDTH="31%">
98   *          <P ALIGN="CENTER">ISO-8859-3
99   *      </TD>
100  *  </TR>
101  *  <TR>
102  *      <TD WIDTH="33%">ISO Latin 4</TD>
103  *      <TD WIDTH="15%">
104  *          <P ALIGN="CENTER">ISO-8859-4
105  *      </TD>
106  *      <TD WIDTH="12%">
107  *          <P ALIGN="CENTER">MIME
108  *      </TD>
109  *      <TD WIDTH="31%">
110  *          <P ALIGN="CENTER">ISO-8859-4
111  *      </TD>
112  *  </TR>
113  *  <TR>
114  *      <TD WIDTH="33%">ISO Latin Cyrillic</TD>
115  *      <TD WIDTH="15%">
116  *          <P ALIGN="CENTER">ISO-8859-5
117  *      </TD>
118  *      <TD WIDTH="12%">
119  *          <P ALIGN="CENTER">MIME
120  *      </TD>
121  *      <TD WIDTH="31%">
122  *          <P ALIGN="CENTER">ISO-8859-5
123  *      </TD>
124  *  </TR>
125  *  <TR>
126  *      <TD WIDTH="33%">ISO Latin Arabic</TD>
127  *      <TD WIDTH="15%">
128  *          <P ALIGN="CENTER">ISO-8859-6
129  *      </TD>
130  *      <TD WIDTH="12%">
131  *          <P ALIGN="CENTER">MIME
132  *      </TD>
133  *      <TD WIDTH="31%">
134  *          <P ALIGN="CENTER">ISO-8859-6
135  *      </TD>
136  *  </TR>
137  *  <TR>
138  *      <TD WIDTH="33%">ISO Latin Greek</TD>
139  *      <TD WIDTH="15%">
140  *          <P ALIGN="CENTER">ISO-8859-7
141  *      </TD>
142  *      <TD WIDTH="12%">
143  *          <P ALIGN="CENTER">MIME
144  *      </TD>
145  *      <TD WIDTH="31%">
146  *          <P ALIGN="CENTER">ISO-8859-7
147  *      </TD>
148  *  </TR>
149  *  <TR>
150  *      <TD WIDTH="33%">ISO Latin Hebrew</TD>
151  *      <TD WIDTH="15%">
152  *          <P ALIGN="CENTER">ISO-8859-8
153  *      </TD>
154  *      <TD WIDTH="12%">
155  *          <P ALIGN="CENTER">MIME
156  *      </TD>
157  *      <TD WIDTH="31%">
158  *          <P ALIGN="CENTER">ISO-8859-8
159  *      </TD>
160  *  </TR>
161  *  <TR>
162  *      <TD WIDTH="33%">ISO Latin 5</TD>
163  *      <TD WIDTH="15%">
164  *          <P ALIGN="CENTER">ISO-8859-9
165  *      </TD>
166  *      <TD WIDTH="12%">
167  *          <P ALIGN="CENTER">MIME
168  *      </TD>
169  *      <TD WIDTH="31%">
170  *          <P ALIGN="CENTER">ISO-8859-9
171  *      </TD>
172  *  </TR>
173  *  <TR>
174  *      <TD WIDTH="33%">EBCDIC: US</TD>
175  *      <TD WIDTH="15%">
176  *          <P ALIGN="CENTER">ebcdic-cp-us
177  *      </TD>
178  *      <TD WIDTH="12%">
179  *          <P ALIGN="CENTER">IANA
180  *      </TD>
181  *      <TD WIDTH="31%">
182  *          <P ALIGN="CENTER">cp037
183  *      </TD>
184  *  </TR>
185  *  <TR>
186  *      <TD WIDTH="33%">EBCDIC: Canada</TD>
187  *      <TD WIDTH="15%">
188  *          <P ALIGN="CENTER">ebcdic-cp-ca
189  *      </TD>
190  *      <TD WIDTH="12%">
191  *          <P ALIGN="CENTER">IANA
192  *      </TD>
193  *      <TD WIDTH="31%">
194  *          <P ALIGN="CENTER">cp037
195  *      </TD>
196  *  </TR>
197  *  <TR>
198  *      <TD WIDTH="33%">EBCDIC: Netherlands</TD>
199  *      <TD WIDTH="15%">
200  *          <P ALIGN="CENTER">ebcdic-cp-nl
201  *      </TD>
202  *      <TD WIDTH="12%">
203  *          <P ALIGN="CENTER">IANA
204  *      </TD>
205  *      <TD WIDTH="31%">
206  *          <P ALIGN="CENTER">cp037
207  *      </TD>
208  *  </TR>
209  *  <TR>
210  *      <TD WIDTH="33%">EBCDIC: Denmark</TD>
211  *      <TD WIDTH="15%">
212  *          <P ALIGN="CENTER">ebcdic-cp-dk
213  *      </TD>
214  *      <TD WIDTH="12%">
215  *          <P ALIGN="CENTER">IANA
216  *      </TD>
217  *      <TD WIDTH="31%">
218  *          <P ALIGN="CENTER">cp277
219  *      </TD>
220  *  </TR>
221  *  <TR>
222  *      <TD WIDTH="33%">EBCDIC: Norway</TD>
223  *      <TD WIDTH="15%">
224  *          <P ALIGN="CENTER">ebcdic-cp-no
225  *      </TD>
226  *      <TD WIDTH="12%">
227  *          <P ALIGN="CENTER">IANA
228  *      </TD>
229  *      <TD WIDTH="31%">
230  *          <P ALIGN="CENTER">cp277
231  *      </TD>
232  *  </TR>
233  *  <TR>
234  *      <TD WIDTH="33%">EBCDIC: Finland</TD>
235  *      <TD WIDTH="15%">
236  *          <P ALIGN="CENTER">ebcdic-cp-fi
237  *      </TD>
238  *      <TD WIDTH="12%">
239  *          <P ALIGN="CENTER">IANA
240  *      </TD>
241  *      <TD WIDTH="31%">
242  *          <P ALIGN="CENTER">cp278
243  *      </TD>
244  *  </TR>
245  *  <TR>
246  *      <TD WIDTH="33%">EBCDIC: Sweden</TD>
247  *      <TD WIDTH="15%">
248  *          <P ALIGN="CENTER">ebcdic-cp-se
249  *      </TD>
250  *      <TD WIDTH="12%">
251  *          <P ALIGN="CENTER">IANA
252  *      </TD>
253  *      <TD WIDTH="31%">
254  *          <P ALIGN="CENTER">cp278
255  *      </TD>
256  *  </TR>
257  *  <TR>
258  *      <TD WIDTH="33%">EBCDIC: Italy</TD>
259  *      <TD WIDTH="15%">
260  *          <P ALIGN="CENTER">ebcdic-cp-it
261  *      </TD>
262  *      <TD WIDTH="12%">
263  *          <P ALIGN="CENTER">IANA
264  *      </TD>
265  *      <TD WIDTH="31%">
266  *          <P ALIGN="CENTER">cp280
267  *      </TD>
268  *  </TR>
269  *  <TR>
270  *      <TD WIDTH="33%">EBCDIC: Spain, Latin America</TD>
271  *      <TD WIDTH="15%">
272  *          <P ALIGN="CENTER">ebcdic-cp-es
273  *      </TD>
274  *      <TD WIDTH="12%">
275  *          <P ALIGN="CENTER">IANA
276  *      </TD>
277  *      <TD WIDTH="31%">
278  *          <P ALIGN="CENTER">cp284
279  *      </TD>
280  *  </TR>
281  *  <TR>
282  *      <TD WIDTH="33%">EBCDIC: Great Britain</TD>
283  *      <TD WIDTH="15%">
284  *          <P ALIGN="CENTER">ebcdic-cp-gb
285  *      </TD>
286  *      <TD WIDTH="12%">
287  *          <P ALIGN="CENTER">IANA
288  *      </TD>
289  *      <TD WIDTH="31%">
290  *          <P ALIGN="CENTER">cp285
291  *      </TD>
292  *  </TR>
293  *  <TR>
294  *      <TD WIDTH="33%">EBCDIC: France</TD>
295  *      <TD WIDTH="15%">
296  *          <P ALIGN="CENTER">ebcdic-cp-fr
297  *      </TD>
298  *      <TD WIDTH="12%">
299  *          <P ALIGN="CENTER">IANA
300  *      </TD>
301  *      <TD WIDTH="31%">
302  *          <P ALIGN="CENTER">cp297
303  *      </TD>
304  *  </TR>
305  *  <TR>
306  *      <TD WIDTH="33%">EBCDIC: Arabic</TD>
307  *      <TD WIDTH="15%">
308  *          <P ALIGN="CENTER">ebcdic-cp-ar1
309  *      </TD>
310  *      <TD WIDTH="12%">
311  *          <P ALIGN="CENTER">IANA
312  *      </TD>
313  *      <TD WIDTH="31%">
314  *          <P ALIGN="CENTER">cp420
315  *      </TD>
316  *  </TR>
317  *  <TR>
318  *      <TD WIDTH="33%">EBCDIC: Hebrew</TD>
319  *      <TD WIDTH="15%">
320  *          <P ALIGN="CENTER">ebcdic-cp-he
321  *      </TD>
322  *      <TD WIDTH="12%">
323  *          <P ALIGN="CENTER">IANA
324  *      </TD>
325  *      <TD WIDTH="31%">
326  *          <P ALIGN="CENTER">cp424
327  *      </TD>
328  *  </TR>
329  *  <TR>
330  *      <TD WIDTH="33%">EBCDIC: Switzerland</TD>
331  *      <TD WIDTH="15%">
332  *          <P ALIGN="CENTER">ebcdic-cp-ch
333  *      </TD>
334  *      <TD WIDTH="12%">
335  *          <P ALIGN="CENTER">IANA
336  *      </TD>
337  *      <TD WIDTH="31%">
338  *          <P ALIGN="CENTER">cp500
339  *      </TD>
340  *  </TR>
341  *  <TR>
342  *      <TD WIDTH="33%">EBCDIC: Roece</TD>
343  *      <TD WIDTH="15%">
344  *          <P ALIGN="CENTER">ebcdic-cp-roece
345  *      </TD>
346  *      <TD WIDTH="12%">
347  *          <P ALIGN="CENTER">IANA
348  *      </TD>
349  *      <TD WIDTH="31%">
350  *          <P ALIGN="CENTER">cp870
351  *      </TD>
352  *  </TR>
353  *  <TR>
354  *      <TD WIDTH="33%">EBCDIC: Yogoslavia</TD>
355  *      <TD WIDTH="15%">
356  *          <P ALIGN="CENTER">ebcdic-cp-yu
357  *      </TD>
358  *      <TD WIDTH="12%">
359  *          <P ALIGN="CENTER">IANA
360  *      </TD>
361  *      <TD WIDTH="31%">
362  *          <P ALIGN="CENTER">cp870
363  *      </TD>
364  *  </TR>
365  *  <TR>
366  *      <TD WIDTH="33%">EBCDIC: Iceland</TD>
367  *      <TD WIDTH="15%">
368  *          <P ALIGN="CENTER">ebcdic-cp-is
369  *      </TD>
370  *      <TD WIDTH="12%">
371  *          <P ALIGN="CENTER">IANA
372  *      </TD>
373  *      <TD WIDTH="31%">
374  *          <P ALIGN="CENTER">cp871
375  *      </TD>
376  *  </TR>
377  *  <TR>
378  *      <TD WIDTH="33%">EBCDIC: Urdu</TD>
379  *      <TD WIDTH="15%">
380  *          <P ALIGN="CENTER">ebcdic-cp-ar2
381  *      </TD>
382  *      <TD WIDTH="12%">
383  *          <P ALIGN="CENTER">IANA
384  *      </TD>
385  *      <TD WIDTH="31%">
386  *          <P ALIGN="CENTER">cp918
387  *      </TD>
388  *  </TR>
389  *  <TR>
390  *      <TD WIDTH="33%">Chinese for PRC, mixed 1/2 byte</TD>
391  *      <TD WIDTH="15%">
392  *          <P ALIGN="CENTER">gb2312
393  *      </TD>
394  *      <TD WIDTH="12%">
395  *          <P ALIGN="CENTER">MIME
396  *      </TD>
397  *      <TD WIDTH="31%">
398  *          <P ALIGN="CENTER">GB2312
399  *      </TD>
400  *  </TR>
401  *  <TR>
402  *      <TD WIDTH="33%">Extended Unix Code, packed for Japanese</TD>
403  *      <TD WIDTH="15%">
404  *          <P ALIGN="CENTER">euc-jp
405  *      </TD>
406  *      <TD WIDTH="12%">
407  *          <P ALIGN="CENTER">MIME
408  *      </TD>
409  *      <TD WIDTH="31%">
410  *          <P ALIGN="CENTER">eucjis
411  *      </TD>
412  *  </TR>
413  *  <TR>
414  *      <TD WIDTH="33%">Japanese: iso-2022-jp</TD>
415  *      <TD WIDTH="15%">
416  *          <P ALIGN="CENTER">iso-2020-jp
417  *      </TD>
418  *      <TD WIDTH="12%">
419  *          <P ALIGN="CENTER">MIME
420  *      </TD>
421  *      <TD WIDTH="31%">
422  *          <P ALIGN="CENTER">JIS
423  *      </TD>
424  *  </TR>
425  *  <TR>
426  *      <TD WIDTH="33%">Japanese: Shift JIS</TD>
427  *      <TD WIDTH="15%">
428  *          <P ALIGN="CENTER">Shift_JIS
429  *      </TD>
430  *      <TD WIDTH="12%">
431  *          <P ALIGN="CENTER">MIME
432  *      </TD>
433  *      <TD WIDTH="31%">
434  *          <P ALIGN="CENTER">SJIS
435  *      </TD>
436  *  </TR>
437  *  <TR>
438  *      <TD WIDTH="33%">Chinese: Big5</TD>
439  *      <TD WIDTH="15%">
440  *          <P ALIGN="CENTER">Big5
441  *      </TD>
442  *      <TD WIDTH="12%">
443  *          <P ALIGN="CENTER">MIME
444  *      </TD>
445  *      <TD WIDTH="31%">
446  *          <P ALIGN="CENTER">Big5
447  *      </TD>
448  *  </TR>
449  *  <TR>
450  *      <TD WIDTH="33%">Extended Unix Code, packed for Korean</TD>
451  *      <TD WIDTH="15%">
452  *          <P ALIGN="CENTER">euc-kr
453  *      </TD>
454  *      <TD WIDTH="12%">
455  *          <P ALIGN="CENTER">MIME
456  *      </TD>
457  *      <TD WIDTH="31%">
458  *          <P ALIGN="CENTER">iso2022kr
459  *      </TD>
460  *  </TR>
461  *  <TR>
462  *      <TD WIDTH="33%">Cyrillic</TD>
463  *      <TD WIDTH="15%">
464  *          <P ALIGN="CENTER">koi8-r
465  *      </TD>
466  *      <TD WIDTH="12%">
467  *          <P ALIGN="CENTER">MIME
468  *      </TD>
469  *      <TD WIDTH="31%">
470  *          <P ALIGN="CENTER">koi8-r
471  *      </TD>
472  *  </TR>
473  * </TABLE>
474  * 
475  */
476 public class MIME2Java {
477     
478     static private Hashtable s_enchash;
479     static private Hashtable s_revhash;
480     
481     static {
482         s_enchash = new Hashtable();
483         //    <preferred MIME name>, <Java encoding name>
484         s_enchash.put("UTF-8", "UTF8");
485         s_enchash.put("US-ASCII",        "8859_1");    // ?
486         s_enchash.put("ISO-8859-1",      "8859_1");
487         s_enchash.put("ISO-8859-2",      "8859_2");
488         s_enchash.put("ISO-8859-3",      "8859_3");
489         s_enchash.put("ISO-8859-4",      "8859_4");
490         s_enchash.put("ISO-8859-5",      "8859_5");
491         s_enchash.put("ISO-8859-6",      "8859_6");
492         s_enchash.put("ISO-8859-7",      "8859_7");
493         s_enchash.put("ISO-8859-8",      "8859_8");
494         s_enchash.put("ISO-8859-9",      "8859_9");
495         s_enchash.put("ISO-2022-JP",     "JIS");
496         s_enchash.put("SHIFT_JIS",       "SJIS");
497         s_enchash.put("EUC-JP",          "EUCJIS");
498         s_enchash.put("GB2312",          "GB2312");
499         s_enchash.put("BIG5",            "Big5");
500         s_enchash.put("EUC-KR",          "KSC5601");
501         s_enchash.put("ISO-2022-KR",     "ISO2022KR");
502         s_enchash.put("KOI8-R",          "KOI8_R");
503 
504         s_enchash.put("EBCDIC-CP-US",    "CP037");
505         s_enchash.put("EBCDIC-CP-CA",    "CP037");
506         s_enchash.put("EBCDIC-CP-NL",    "CP037");
507         s_enchash.put("EBCDIC-CP-DK",    "CP277");
508         s_enchash.put("EBCDIC-CP-NO",    "CP277");
509         s_enchash.put("EBCDIC-CP-FI",    "CP278");
510         s_enchash.put("EBCDIC-CP-SE",    "CP278");
511         s_enchash.put("EBCDIC-CP-IT",    "CP280");
512         s_enchash.put("EBCDIC-CP-ES",    "CP284");
513         s_enchash.put("EBCDIC-CP-GB",    "CP285");
514         s_enchash.put("EBCDIC-CP-FR",    "CP297");
515         s_enchash.put("EBCDIC-CP-AR1",   "CP420");
516         s_enchash.put("EBCDIC-CP-HE",    "CP424");
517         s_enchash.put("EBCDIC-CP-CH",    "CP500");
518         s_enchash.put("EBCDIC-CP-ROECE", "CP870");
519         s_enchash.put("EBCDIC-CP-YU",    "CP870");
520         s_enchash.put("EBCDIC-CP-IS",    "CP871");
521         s_enchash.put("EBCDIC-CP-AR2",   "CP918");
522 
523                                                 // j:CNS11643 -> EUC-TW?
524                                                 // ISO-2022-CN? ISO-2022-CN-EXT?
525                                                 
526         s_revhash = new Hashtable();
527         //    <Java encoding name>, <preferred MIME name>
528         s_revhash.put("UTF8", "UTF-8");
529         //s_revhash.put("8859_1", "US-ASCII");    // ?
530         s_revhash.put("8859_1", "ISO-8859-1");
531         s_revhash.put("8859_2", "ISO-8859-2");
532         s_revhash.put("8859_3", "ISO-8859-3");
533         s_revhash.put("8859_4", "ISO-8859-4");
534         s_revhash.put("8859_5", "ISO-8859-5");
535         s_revhash.put("8859_6", "ISO-8859-6");
536         s_revhash.put("8859_7", "ISO-8859-7");
537         s_revhash.put("8859_8", "ISO-8859-8");
538         s_revhash.put("8859_9", "ISO-8859-9");
539         s_revhash.put("JIS", "ISO-2022-JP");
540         s_revhash.put("SJIS", "Shift_JIS");
541         s_revhash.put("EUCJIS", "EUC-JP");
542         s_revhash.put("GB2312", "GB2312");
543         s_revhash.put("BIG5", "Big5");
544         s_revhash.put("KSC5601", "EUC-KR");
545         s_revhash.put("ISO2022KR", "ISO-2022-KR");
546         s_revhash.put("KOI8_R", "KOI8-R");
547 
548         s_revhash.put("CP037", "EBCDIC-CP-US");
549         s_revhash.put("CP037", "EBCDIC-CP-CA");
550         s_revhash.put("CP037", "EBCDIC-CP-NL");
551         s_revhash.put("CP277", "EBCDIC-CP-DK");
552         s_revhash.put("CP277", "EBCDIC-CP-NO");
553         s_revhash.put("CP278", "EBCDIC-CP-FI");
554         s_revhash.put("CP278", "EBCDIC-CP-SE");
555         s_revhash.put("CP280", "EBCDIC-CP-IT");
556         s_revhash.put("CP284", "EBCDIC-CP-ES");
557         s_revhash.put("CP285", "EBCDIC-CP-GB");
558         s_revhash.put("CP297", "EBCDIC-CP-FR");
559         s_revhash.put("CP420", "EBCDIC-CP-AR1");
560         s_revhash.put("CP424", "EBCDIC-CP-HE");
561         s_revhash.put("CP500", "EBCDIC-CP-CH");
562         s_revhash.put("CP870", "EBCDIC-CP-ROECE");
563         s_revhash.put("CP870", "EBCDIC-CP-YU");
564         s_revhash.put("CP871", "EBCDIC-CP-IS");
565         s_revhash.put("CP918", "EBCDIC-CP-AR2");
566     }
567 
568     private MIME2Java() {
569     }
570 
571     /**
572      * Convert a MIME charset name, also known as an XML encoding name, to a Java encoding name.
573      * @param   mimeCharsetName Case insensitive MIME charset name: <code>UTF-8, US-ASCII, ISO-8859-1,
574      *                          ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6,
575      *                          ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-2022-JP, Shift_JIS, 
576      *                          EUC-JP, GB2312, Big5, EUC-KR, ISO-2022-KR, KOI8-R,
577      *                          EBCDIC-CP-US, EBCDIC-CP-CA, EBCDIC-CP-NL, EBCDIC-CP-DK,
578      *                          EBCDIC-CP-NO, EBCDIC-CP-FI, EBCDIC-CP-SE, EBCDIC-CP-IT,
579      *                          EBCDIC-CP-ES, EBCDIC-CP-GB, EBCDIC-CP-FR, EBCDIC-CP-AR1,
580      *                          EBCDIC-CP-HE, EBCDIC-CP-CH, EBCDIC-CP-ROECE, EBCDIC-CP-YU,
581      *                          EBCDIC-CP-IS and EBCDIC-CP-AR2</code>.
582      * @return                  Java encoding name, or <var>null</var> if <var>mimeCharsetName</var>
583      *                          is unknown.
584      * @see #reverse
585      */
586     public static String convert(String mimeCharsetName) {
587         return (String)s_enchash.get(mimeCharsetName.toUpperCase());
588     }
589 
590     /**
591      * Convert a Java encoding name to MIME charset name.
592      * Available values of <i>encoding</i> are "UTF8", "8859_1", "8859_2", "8859_3", "8859_4",
593      * "8859_5", "8859_6", "8859_7", "8859_8", "8859_9", "JIS", "SJIS", "EUCJIS",
594      * "GB2312", "BIG5", "KSC5601", "ISO2022KR",  "KOI8_R", "CP037", "CP277", "CP278",
595      * "CP280", "CP284", "CP285", "CP297", "CP420", "CP424", "CP500", "CP870", "CP871" and "CP918".
596      * @param   encoding    Case insensitive Java encoding name: <code>UTF8, 8859_1, 8859_2, 8859_3,
597      *                      8859_4, 8859_5, 8859_6, 8859_7, 8859_8, 8859_9, JIS, SJIS, EUCJIS,
598      *                      GB2312, BIG5, KSC5601, ISO2022KR, KOI8_R, CP037, CP277, CP278,
599      *                      CP280, CP284, CP285, CP297, CP420, CP424, CP500, CP870, CP871 
600      *                      and CP918</code>.
601      * @return              MIME charset name, or <var>null</var> if <var>encoding</var> is unknown.
602      * @see #convert
603      */
604     public static String reverse(String encoding) {
605         return (String)s_revhash.get(encoding.toUpperCase());
606     }
607 }