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 }