View Javadoc

1   /*
2    * @(#) $Id: FromCP932Corrector.java,v 1.1.2.1 2005/01/18 07:20:36 otsuka Exp $
3    * $Revision: 1.1.2.1 $
4    * Copyright (c) 2000 Shin Kinoshita All Rights Reserved.
5    */
6   package com.ozacc.mail.fetch.impl.sk_jp.io;
7   
8   /***
9    * FromCP932Corrector.
10   * <p>
11   * CorrectOutputStreamWriterで用いられる文字列バッファ補正クラスです。<br>
12   * 風間一洋さんのJavaHouse-Brewers投稿記事[14452]のCp932クラスから
13   * 変換表を参考にさせていただいています。<br>
14   * </p>
15   * @version $Revision: 1.1.2.1 $ $Date: 2005/01/18 07:20:36 $
16   * @author Shin
17   */
18  public class FromCP932Corrector extends UnicodeCorrector {
19      /***
20       * Unicode文字配列の補正を行います。
21       * <p>
22       * "MS932""Shift_JIS"エンコーディング以外で出力しようとした際の
23       * sun.ioやcom.msコンバータでは正常に変換できない部分を補正します。
24       * </p>
25       * @param  c     source character
26       * @return Result character that corrected.
27       */
28      public char correct(char c) {
29          switch (c) {
30              // ISO-2022-JPコンバータが正しく解釈しているようだ
31  //          case 0xff3c:        // FULLWIDTH REVERSE SOLIDUS ->
32  //              return 0x005c;  // REVERSE SOLIDUS
33              case 0xff5e:        // FULLWIDTH TILDE ->
34                  return 0x301c;  // WAVE DASH
35              case 0x2225:        // PARALLEL TO ->
36                  return 0x2016;  // DOUBLE VERTICAL LINE
37              case 0xff0d:        // FULLWIDTH HYPHEN-MINUS ->
38                  return 0x2212;  // MINUS SIGN
39              case 0xffe0:        // FULLWIDTH CENT SIGN ->
40                  return 0x00a2;  // CENT SIGN
41              case 0xffe1:        // FULLWIDTH POUND SIGN ->
42                  return 0x00a3;  // POUND SIGN
43              case 0xffe2:        // FULLWIDTH NOT SIGN ->
44                  return 0x00ac;  // NOT SIGN
45          }
46          return c;
47      }
48  }