View Javadoc

1   /*
2    * @(#) $Id: ToCP932Corrector.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    * ToCP932Corrector.
10   * <p>
11   * CorrectOutputStreamWriterで用いられる文字列バッファ補正クラスです。<br>
12   * 風間一洋さんのJavaHouse-Brewers投稿記事[14452]のCp932クラス
13   * (XML日本語プロファイルも同じです)から
14   * 変換表を参考にさせていただいています。<br>
15   * </p>
16   * @version $Revision: 1.1.2.1 $ $Date: 2005/01/18 07:20:36 $
17   * @author Shin
18   */
19  public class ToCP932Corrector extends UnicodeCorrector {
20      /***
21       * Unicode文字の補正を行います。
22       * <p>
23       * 特定の文字を"MS932""Shift_JIS"エンコーディングで出力しようとした際の
24       * sun.ioコンバータでは正常に変換できない部分を補正します。
25       * </p>
26       * @param  c     source character
27       * @return Result character that corrected.
28       */
29      public char correct(char c) {
30          switch (c) {
31  //          case 0x005c:        // REVERSE SOLIDUS ->
32  //              return 0xff3c;  // FULLWIDTH REVERSE SOLIDUS
33              case 0x301c:        // WAVE DASH ->
34                  return 0xff5e;  // FULLWIDTH TILDE
35              case 0x2016:        // DOUBLE VERTICAL LINE ->
36                  return 0x2225;  // PARALLEL TO
37              case 0x2212:        // MINUS SIGN ->
38                  return 0xff0d;  // FULLWIDTH HYPHEN-MINUS
39              // MS932コンバータが正しく解釈しているようだ
40  /*
41              case 0x00a2:        // CENT SIGN ->
42                  return 0xffe0;  // FULLWIDTH CENT SIGN
43              case 0x00a3:        // POUND SIGN ->
44                  return 0xffe1;  // FULLWIDTH POUND SIGN
45              case 0x00ac:        // NOT SIGN ->
46                  return 0xffe2;  // FULLWIDTH NOT SIGN
47  */
48          }
49          return c;
50      }
51  }