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  }