KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > catalina > util > MIME2Java


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 package org.apache.catalina.util;
19
20 import java.util.*;
21
22 /**
23  * MIME2Java is a convenience class which handles conversions between MIME charset names
24  * and Java encoding names.
25  * <p>The supported XML encodings are the intersection of XML-supported code sets and those
26  * supported in JDK 1.1.
27  * <p>MIME charset names are used on <var>xmlEncoding</var> parameters to methods such
28  * as <code>TXDocument#setEncoding</code> and <code>DTD#setEncoding</code>.
29  * <p>Java encoding names are used on <var>encoding</var> parameters to
30  * methods such as <code>TXDocument#printWithFormat</code> and <code>DTD#printExternal</code>.
31  * <P>
32  * <TABLE BORDER="0" WIDTH="100%">
33  * <TR>
34  * <TD WIDTH="33%">
35  * <P ALIGN="CENTER"><B>Common Name</B>
36  * </TD>
37  * <TD WIDTH="15%">
38  * <P ALIGN="CENTER"><B>Use this name in XML files</B>
39  * </TD>
40  * <TD WIDTH="12%">
41  * <P ALIGN="CENTER"><B>Name Type</B>
42  * </TD>
43  * <TD WIDTH="31%">
44  * <P ALIGN="CENTER"><B>Xerces converts to this Java Encoder Name</B>
45  * </TD>
46  * </TR>
47  * <TR>
48  * <TD WIDTH="33%">8 bit Unicode</TD>
49  * <TD WIDTH="15%">
50  * <P ALIGN="CENTER">UTF-8
51  * </TD>
52  * <TD WIDTH="12%">
53  * <P ALIGN="CENTER">IANA
54  * </TD>
55  * <TD WIDTH="31%">
56  * <P ALIGN="CENTER">UTF8
57  * </TD>
58  * </TR>
59  * <TR>
60  * <TD WIDTH="33%">ISO Latin 1</TD>
61  * <TD WIDTH="15%">
62  * <P ALIGN="CENTER">ISO-8859-1
63  * </TD>
64  * <TD WIDTH="12%">
65  * <P ALIGN="CENTER">MIME
66  * </TD>
67  * <TD WIDTH="31%">
68  * <P ALIGN="CENTER">ISO-8859-1
69  * </TD>
70  * </TR>
71  * <TR>
72  * <TD WIDTH="33%">ISO Latin 2</TD>
73  * <TD WIDTH="15%">
74  * <P ALIGN="CENTER">ISO-8859-2
75  * </TD>
76  * <TD WIDTH="12%">
77  * <P ALIGN="CENTER">MIME
78  * </TD>
79  * <TD WIDTH="31%">
80  * <P ALIGN="CENTER">ISO-8859-2
81  * </TD>
82  * </TR>
83  * <TR>
84  * <TD WIDTH="33%">ISO Latin 3</TD>
85  * <TD WIDTH="15%">
86  * <P ALIGN="CENTER">ISO-8859-3
87  * </TD>
88  * <TD WIDTH="12%">
89  * <P ALIGN="CENTER">MIME
90  * </TD>
91  * <TD WIDTH="31%">
92  * <P ALIGN="CENTER">ISO-8859-3
93  * </TD>
94  * </TR>
95  * <TR>
96  * <TD WIDTH="33%">ISO Latin 4</TD>
97  * <TD WIDTH="15%">
98  * <P ALIGN="CENTER">ISO-8859-4
99  * </TD>
100  * <TD WIDTH="12%">
101  * <P ALIGN="CENTER">MIME
102  * </TD>
103  * <TD WIDTH="31%">
104  * <P ALIGN="CENTER">ISO-8859-4
105  * </TD>
106  * </TR>
107  * <TR>
108  * <TD WIDTH="33%">ISO Latin Cyrillic</TD>
109  * <TD WIDTH="15%">
110  * <P ALIGN="CENTER">ISO-8859-5
111  * </TD>
112  * <TD WIDTH="12%">
113  * <P ALIGN="CENTER">MIME
114  * </TD>
115  * <TD WIDTH="31%">
116  * <P ALIGN="CENTER">ISO-8859-5
117  * </TD>
118  * </TR>
119  * <TR>
120  * <TD WIDTH="33%">ISO Latin Arabic</TD>
121  * <TD WIDTH="15%">
122  * <P ALIGN="CENTER">ISO-8859-6
123  * </TD>
124  * <TD WIDTH="12%">
125  * <P ALIGN="CENTER">MIME
126  * </TD>
127  * <TD WIDTH="31%">
128  * <P ALIGN="CENTER">ISO-8859-6
129  * </TD>
130  * </TR>
131  * <TR>
132  * <TD WIDTH="33%">ISO Latin Greek</TD>
133  * <TD WIDTH="15%">
134  * <P ALIGN="CENTER">ISO-8859-7
135  * </TD>
136  * <TD WIDTH="12%">
137  * <P ALIGN="CENTER">MIME
138  * </TD>
139  * <TD WIDTH="31%">
140  * <P ALIGN="CENTER">ISO-8859-7
141  * </TD>
142  * </TR>
143  * <TR>
144  * <TD WIDTH="33%">ISO Latin Hebrew</TD>
145  * <TD WIDTH="15%">
146  * <P ALIGN="CENTER">ISO-8859-8
147  * </TD>
148  * <TD WIDTH="12%">
149  * <P ALIGN="CENTER">MIME
150  * </TD>
151  * <TD WIDTH="31%">
152  * <P ALIGN="CENTER">ISO-8859-8
153  * </TD>
154  * </TR>
155  * <TR>
156  * <TD WIDTH="33%">ISO Latin 5</TD>
157  * <TD WIDTH="15%">
158  * <P ALIGN="CENTER">ISO-8859-9
159  * </TD>
160  * <TD WIDTH="12%">
161  * <P ALIGN="CENTER">MIME
162  * </TD>
163  * <TD WIDTH="31%">
164  * <P ALIGN="CENTER">ISO-8859-9
165  * </TD>
166  * </TR>
167  * <TR>
168  * <TD WIDTH="33%">EBCDIC: US</TD>
169  * <TD WIDTH="15%">
170  * <P ALIGN="CENTER">ebcdic-cp-us
171  * </TD>
172  * <TD WIDTH="12%">
173  * <P ALIGN="CENTER">IANA
174  * </TD>
175  * <TD WIDTH="31%">
176  * <P ALIGN="CENTER">cp037
177  * </TD>
178  * </TR>
179  * <TR>
180  * <TD WIDTH="33%">EBCDIC: Canada</TD>
181  * <TD WIDTH="15%">
182  * <P ALIGN="CENTER">ebcdic-cp-ca
183  * </TD>
184  * <TD WIDTH="12%">
185  * <P ALIGN="CENTER">IANA
186  * </TD>
187  * <TD WIDTH="31%">
188  * <P ALIGN="CENTER">cp037
189  * </TD>
190  * </TR>
191  * <TR>
192  * <TD WIDTH="33%">EBCDIC: Netherlands</TD>
193  * <TD WIDTH="15%">
194  * <P ALIGN="CENTER">ebcdic-cp-nl
195  * </TD>
196  * <TD WIDTH="12%">
197  * <P ALIGN="CENTER">IANA
198  * </TD>
199  * <TD WIDTH="31%">
200  * <P ALIGN="CENTER">cp037
201  * </TD>
202  * </TR>
203  * <TR>
204  * <TD WIDTH="33%">EBCDIC: Denmark</TD>
205  * <TD WIDTH="15%">
206  * <P ALIGN="CENTER">ebcdic-cp-dk
207  * </TD>
208  * <TD WIDTH="12%">
209  * <P ALIGN="CENTER">IANA
210  * </TD>
211  * <TD WIDTH="31%">
212  * <P ALIGN="CENTER">cp277
213  * </TD>
214  * </TR>
215  * <TR>
216  * <TD WIDTH="33%">EBCDIC: Norway</TD>
217  * <TD WIDTH="15%">
218  * <P ALIGN="CENTER">ebcdic-cp-no
219  * </TD>
220  * <TD WIDTH="12%">
221  * <P ALIGN="CENTER">IANA
222  * </TD>
223  * <TD WIDTH="31%">
224  * <P ALIGN="CENTER">cp277
225  * </TD>
226  * </TR>
227  * <TR>
228  * <TD WIDTH="33%">EBCDIC: Finland</TD>
229  * <TD WIDTH="15%">
230  * <P ALIGN="CENTER">ebcdic-cp-fi
231  * </TD>
232  * <TD WIDTH="12%">
233  * <P ALIGN="CENTER">IANA
234  * </TD>
235  * <TD WIDTH="31%">
236  * <P ALIGN="CENTER">cp278
237  * </TD>
238  * </TR>
239  * <TR>
240  * <TD WIDTH="33%">EBCDIC: Sweden</TD>
241  * <TD WIDTH="15%">
242  * <P ALIGN="CENTER">ebcdic-cp-se
243  * </TD>
244  * <TD WIDTH="12%">
245  * <P ALIGN="CENTER">IANA
246  * </TD>
247  * <TD WIDTH="31%">
248  * <P ALIGN="CENTER">cp278
249  * </TD>
250  * </TR>
251  * <TR>
252  * <TD WIDTH="33%">EBCDIC: Italy</TD>
253  * <TD WIDTH="15%">
254  * <P ALIGN="CENTER">ebcdic-cp-it
255  * </TD>
256  * <TD WIDTH="12%">
257  * <P ALIGN="CENTER">IANA
258  * </TD>
259  * <TD WIDTH="31%">
260  * <P ALIGN="CENTER">cp280
261  * </TD>
262  * </TR>
263  * <TR>
264  * <TD WIDTH="33%">EBCDIC: Spain, Latin America</TD>
265  * <TD WIDTH="15%">
266  * <P ALIGN="CENTER">ebcdic-cp-es
267  * </TD>
268  * <TD WIDTH="12%">
269  * <P ALIGN="CENTER">IANA
270  * </TD>
271  * <TD WIDTH="31%">
272  * <P ALIGN="CENTER">cp284
273  * </TD>
274  * </TR>
275  * <TR>
276  * <TD WIDTH="33%">EBCDIC: Great Britain</TD>
277  * <TD WIDTH="15%">
278  * <P ALIGN="CENTER">ebcdic-cp-gb
279  * </TD>
280  * <TD WIDTH="12%">
281  * <P ALIGN="CENTER">IANA
282  * </TD>
283  * <TD WIDTH="31%">
284  * <P ALIGN="CENTER">cp285
285  * </TD>
286  * </TR>
287  * <TR>
288  * <TD WIDTH="33%">EBCDIC: France</TD>
289  * <TD WIDTH="15%">
290  * <P ALIGN="CENTER">ebcdic-cp-fr
291  * </TD>
292  * <TD WIDTH="12%">
293  * <P ALIGN="CENTER">IANA
294  * </TD>
295  * <TD WIDTH="31%">
296  * <P ALIGN="CENTER">cp297
297  * </TD>
298  * </TR>
299  * <TR>
300  * <TD WIDTH="33%">EBCDIC: Arabic</TD>
301  * <TD WIDTH="15%">
302  * <P ALIGN="CENTER">ebcdic-cp-ar1
303  * </TD>
304  * <TD WIDTH="12%">
305  * <P ALIGN="CENTER">IANA
306  * </TD>
307  * <TD WIDTH="31%">
308  * <P ALIGN="CENTER">cp420
309  * </TD>
310  * </TR>
311  * <TR>
312  * <TD WIDTH="33%">EBCDIC: Hebrew</TD>
313  * <TD WIDTH="15%">
314  * <P ALIGN="CENTER">ebcdic-cp-he
315  * </TD>
316  * <TD WIDTH="12%">
317  * <P ALIGN="CENTER">IANA
318  * </TD>
319  * <TD WIDTH="31%">
320  * <P ALIGN="CENTER">cp424
321  * </TD>
322  * </TR>
323  * <TR>
324  * <TD WIDTH="33%">EBCDIC: Switzerland</TD>
325  * <TD WIDTH="15%">
326  * <P ALIGN="CENTER">ebcdic-cp-ch
327  * </TD>
328  * <TD WIDTH="12%">
329  * <P ALIGN="CENTER">IANA
330  * </TD>
331  * <TD WIDTH="31%">
332  * <P ALIGN="CENTER">cp500
333  * </TD>
334  * </TR>
335  * <TR>
336  * <TD WIDTH="33%">EBCDIC: Roece</TD>
337  * <TD WIDTH="15%">
338  * <P ALIGN="CENTER">ebcdic-cp-roece
339  * </TD>
340  * <TD WIDTH="12%">
341  * <P ALIGN="CENTER">IANA
342  * </TD>
343  * <TD WIDTH="31%">
344  * <P ALIGN="CENTER">cp870
345  * </TD>
346  * </TR>
347  * <TR>
348  * <TD WIDTH="33%">EBCDIC: Yogoslavia</TD>
349  * <TD WIDTH="15%">
350  * <P ALIGN="CENTER">ebcdic-cp-yu
351  * </TD>
352  * <TD WIDTH="12%">
353  * <P ALIGN="CENTER">IANA
354  * </TD>
355  * <TD WIDTH="31%">
356  * <P ALIGN="CENTER">cp870
357  * </TD>
358  * </TR>
359  * <TR>
360  * <TD WIDTH="33%">EBCDIC: Iceland</TD>
361  * <TD WIDTH="15%">
362  * <P ALIGN="CENTER">ebcdic-cp-is
363  * </TD>
364  * <TD WIDTH="12%">
365  * <P ALIGN="CENTER">IANA
366  * </TD>
367  * <TD WIDTH="31%">
368  * <P ALIGN="CENTER">cp871
369  * </TD>
370  * </TR>
371  * <TR>
372  * <TD WIDTH="33%">EBCDIC: Urdu</TD>
373  * <TD WIDTH="15%">
374  * <P ALIGN="CENTER">ebcdic-cp-ar2
375  * </TD>
376  * <TD WIDTH="12%">
377  * <P ALIGN="CENTER">IANA
378  * </TD>
379  * <TD WIDTH="31%">
380  * <P ALIGN="CENTER">cp918
381  * </TD>
382  * </TR>
383  * <TR>
384  * <TD WIDTH="33%">Chinese for PRC, mixed 1/2 byte</TD>
385  * <TD WIDTH="15%">
386  * <P ALIGN="CENTER">gb2312
387  * </TD>
388  * <TD WIDTH="12%">
389  * <P ALIGN="CENTER">MIME
390  * </TD>
391  * <TD WIDTH="31%">
392  * <P ALIGN="CENTER">GB2312
393  * </TD>
394  * </TR>
395  * <TR>
396  * <TD WIDTH="33%">Extended Unix Code, packed for Japanese</TD>
397  * <TD WIDTH="15%">
398  * <P ALIGN="CENTER">euc-jp
399  * </TD>
400  * <TD WIDTH="12%">
401  * <P ALIGN="CENTER">MIME
402  * </TD>
403  * <TD WIDTH="31%">
404  * <P ALIGN="CENTER">eucjis
405  * </TD>
406  * </TR>
407  * <TR>
408  * <TD WIDTH="33%">Japanese: iso-2022-jp</TD>
409  * <TD WIDTH="15%">
410  * <P ALIGN="CENTER">iso-2020-jp
411  * </TD>
412  * <TD WIDTH="12%">
413  * <P ALIGN="CENTER">MIME
414  * </TD>
415  * <TD WIDTH="31%">
416  * <P ALIGN="CENTER">JIS
417  * </TD>
418  * </TR>
419  * <TR>
420  * <TD WIDTH="33%">Japanese: Shift JIS</TD>
421  * <TD WIDTH="15%">
422  * <P ALIGN="CENTER">Shift_JIS
423  * </TD>
424  * <TD WIDTH="12%">
425  * <P ALIGN="CENTER">MIME
426  * </TD>
427  * <TD WIDTH="31%">
428  * <P ALIGN="CENTER">SJIS
429  * </TD>
430  * </TR>
431  * <TR>
432  * <TD WIDTH="33%">Chinese: Big5</TD>
433  * <TD WIDTH="15%">
434  * <P ALIGN="CENTER">Big5
435  * </TD>
436  * <TD WIDTH="12%">
437  * <P ALIGN="CENTER">MIME
438  * </TD>
439  * <TD WIDTH="31%">
440  * <P ALIGN="CENTER">Big5
441  * </TD>
442  * </TR>
443  * <TR>
444  * <TD WIDTH="33%">Extended Unix Code, packed for Korean</TD>
445  * <TD WIDTH="15%">
446  * <P ALIGN="CENTER">euc-kr
447  * </TD>
448  * <TD WIDTH="12%">
449  * <P ALIGN="CENTER">MIME
450  * </TD>
451  * <TD WIDTH="31%">
452  * <P ALIGN="CENTER">iso2022kr
453  * </TD>
454  * </TR>
455  * <TR>
456  * <TD WIDTH="33%">Cyrillic</TD>
457  * <TD WIDTH="15%">
458  * <P ALIGN="CENTER">koi8-r
459  * </TD>
460  * <TD WIDTH="12%">
461  * <P ALIGN="CENTER">MIME
462  * </TD>
463  * <TD WIDTH="31%">
464  * <P ALIGN="CENTER">koi8-r
465  * </TD>
466  * </TR>
467  * </TABLE>
468  *
469  * @version $Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
470  * @author TAMURA Kent &lt;kent@trl.ibm.co.jp&gt;
471  */

472 public class MIME2Java {
473
474     static private Hashtable s_enchash;
475     static private Hashtable s_revhash;
476
477     static {
478         s_enchash = new Hashtable();
479         // <preferred MIME name>, <Java encoding name>
480
s_enchash.put("UTF-8", "UTF8");
481         s_enchash.put("US-ASCII", "8859_1"); // ?
482
s_enchash.put("ISO-8859-1", "8859_1");
483         s_enchash.put("ISO-8859-2", "8859_2");
484         s_enchash.put("ISO-8859-3", "8859_3");
485         s_enchash.put("ISO-8859-4", "8859_4");
486         s_enchash.put("ISO-8859-5", "8859_5");
487         s_enchash.put("ISO-8859-6", "8859_6");
488         s_enchash.put("ISO-8859-7", "8859_7");
489         s_enchash.put("ISO-8859-8", "8859_8");
490         s_enchash.put("ISO-8859-9", "8859_9");
491         s_enchash.put("ISO-2022-JP", "JIS");
492         s_enchash.put("SHIFT_JIS", "SJIS");
493         s_enchash.put("EUC-JP", "EUCJIS");
494         s_enchash.put("GB2312", "GB2312");
495         s_enchash.put("BIG5", "Big5");
496         s_enchash.put("EUC-KR", "KSC5601");
497         s_enchash.put("ISO-2022-KR", "ISO2022KR");
498         s_enchash.put("KOI8-R", "KOI8_R");
499
500         s_enchash.put("EBCDIC-CP-US", "CP037");
501         s_enchash.put("EBCDIC-CP-CA", "CP037");
502         s_enchash.put("EBCDIC-CP-NL", "CP037");
503         s_enchash.put("EBCDIC-CP-DK", "CP277");
504         s_enchash.put("EBCDIC-CP-NO", "CP277");
505         s_enchash.put("EBCDIC-CP-FI", "CP278");
506         s_enchash.put("EBCDIC-CP-SE", "CP278");
507         s_enchash.put("EBCDIC-CP-IT", "CP280");
508         s_enchash.put("EBCDIC-CP-ES", "CP284");
509         s_enchash.put("EBCDIC-CP-GB", "CP285");
510         s_enchash.put("EBCDIC-CP-FR", "CP297");
511         s_enchash.put("EBCDIC-CP-AR1", "CP420");
512         s_enchash.put("EBCDIC-CP-HE", "CP424");
513         s_enchash.put("EBCDIC-CP-CH", "CP500");
514         s_enchash.put("EBCDIC-CP-ROECE", "CP870");
515         s_enchash.put("EBCDIC-CP-YU", "CP870");
516         s_enchash.put("EBCDIC-CP-IS", "CP871");
517         s_enchash.put("EBCDIC-CP-AR2", "CP918");
518
519                                                 // j:CNS11643 -> EUC-TW?
520
// ISO-2022-CN? ISO-2022-CN-EXT?
521

522         s_revhash = new Hashtable();
523         // <Java encoding name>, <preferred MIME name>
524
s_revhash.put("UTF8", "UTF-8");
525         //s_revhash.put("8859_1", "US-ASCII"); // ?
526
s_revhash.put("8859_1", "ISO-8859-1");
527         s_revhash.put("8859_2", "ISO-8859-2");
528         s_revhash.put("8859_3", "ISO-8859-3");
529         s_revhash.put("8859_4", "ISO-8859-4");
530         s_revhash.put("8859_5", "ISO-8859-5");
531         s_revhash.put("8859_6", "ISO-8859-6");
532         s_revhash.put("8859_7", "ISO-8859-7");
533         s_revhash.put("8859_8", "ISO-8859-8");
534         s_revhash.put("8859_9", "ISO-8859-9");
535         s_revhash.put("JIS", "ISO-2022-JP");
536         s_revhash.put("SJIS", "Shift_JIS");
537         s_revhash.put("EUCJIS", "EUC-JP");
538         s_revhash.put("GB2312", "GB2312");
539         s_revhash.put("BIG5", "Big5");
540         s_revhash.put("KSC5601", "EUC-KR");
541         s_revhash.put("ISO2022KR", "ISO-2022-KR");
542         s_revhash.put("KOI8_R", "KOI8-R");
543
544         s_revhash.put("CP037", "EBCDIC-CP-US");
545         s_revhash.put("CP037", "EBCDIC-CP-CA");
546         s_revhash.put("CP037", "EBCDIC-CP-NL");
547         s_revhash.put("CP277", "EBCDIC-CP-DK");
548         s_revhash.put("CP277", "EBCDIC-CP-NO");
549         s_revhash.put("CP278", "EBCDIC-CP-FI");
550         s_revhash.put("CP278", "EBCDIC-CP-SE");
551         s_revhash.put("CP280", "EBCDIC-CP-IT");
552         s_revhash.put("CP284", "EBCDIC-CP-ES");
553         s_revhash.put("CP285", "EBCDIC-CP-GB");
554         s_revhash.put("CP297", "EBCDIC-CP-FR");
555         s_revhash.put("CP420", "EBCDIC-CP-AR1");
556         s_revhash.put("CP424", "EBCDIC-CP-HE");
557         s_revhash.put("CP500", "EBCDIC-CP-CH");
558         s_revhash.put("CP870", "EBCDIC-CP-ROECE");
559         s_revhash.put("CP870", "EBCDIC-CP-YU");
560         s_revhash.put("CP871", "EBCDIC-CP-IS");
561         s_revhash.put("CP918", "EBCDIC-CP-AR2");
562     }
563
564     private MIME2Java() {
565     }
566
567     /**
568      * Convert a MIME charset name, also known as an XML encoding name, to a Java encoding name.
569      * @param mimeCharsetName Case insensitive MIME charset name: <code>UTF-8, US-ASCII, ISO-8859-1,
570      * ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6,
571      * ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-2022-JP, Shift_JIS,
572      * EUC-JP, GB2312, Big5, EUC-KR, ISO-2022-KR, KOI8-R,
573      * EBCDIC-CP-US, EBCDIC-CP-CA, EBCDIC-CP-NL, EBCDIC-CP-DK,
574      * EBCDIC-CP-NO, EBCDIC-CP-FI, EBCDIC-CP-SE, EBCDIC-CP-IT,
575      * EBCDIC-CP-ES, EBCDIC-CP-GB, EBCDIC-CP-FR, EBCDIC-CP-AR1,
576      * EBCDIC-CP-HE, EBCDIC-CP-CH, EBCDIC-CP-ROECE, EBCDIC-CP-YU,
577      * EBCDIC-CP-IS and EBCDIC-CP-AR2</code>.
578      * @return Java encoding name, or <var>null</var> if <var>mimeCharsetName</var>
579      * is unknown.
580      * @see #reverse
581      */

582     public static String JavaDoc convert(String JavaDoc mimeCharsetName) {
583         return (String JavaDoc)s_enchash.get(mimeCharsetName.toUpperCase());
584     }
585
586     /**
587      * Convert a Java encoding name to MIME charset name.
588      * Available values of <i>encoding</i> are "UTF8", "8859_1", "8859_2", "8859_3", "8859_4",
589      * "8859_5", "8859_6", "8859_7", "8859_8", "8859_9", "JIS", "SJIS", "EUCJIS",
590      * "GB2312", "BIG5", "KSC5601", "ISO2022KR", "KOI8_R", "CP037", "CP277", "CP278",
591      * "CP280", "CP284", "CP285", "CP297", "CP420", "CP424", "CP500", "CP870", "CP871" and "CP918".
592      * @param encoding Case insensitive Java encoding name: <code>UTF8, 8859_1, 8859_2, 8859_3,
593      * 8859_4, 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
596      * and CP918</code>.
597      * @return MIME charset name, or <var>null</var> if <var>encoding</var> is unknown.
598      * @see #convert
599      */

600     public static String JavaDoc reverse(String JavaDoc encoding) {
601         return (String JavaDoc)s_revhash.get(encoding.toUpperCase());
602     }
603 }
604
Popular Tags