public class CharacterEncoder extends Object
このクラスは、Java runtime が提供する通常の文字コード変換において 文字のマッピング定義の相違に起因して文字化けしてしまう現象を解決するための 一つの方法となります。 実際には、定義ファイルに設定されている文字をネイティブコードへ変換する前に 他の文字へ変更する事により、文字化けを防ぎます。
例えば、EUC_JP における文字「~」は、
Unicode へ変換した際 0x301C(Wave Dash) にマッピングされます。
これに対して、SJIS では文字「~」は、
Unicode の 0xFF5E(Fullwidth Tilde) にマッピングされています。
このため、相互に文字コード変換をすると、
文字「?」に置き換わると言う現象(いわゆる文字化け)が発生します。
このクラスでは、Unicode から SJIS へ変換する際に
Unicode の文字 0x301C(Wave Dash) を 0xFF5E(Fullwidth Tilde) へ変更してから
文字コード変換を行います。
定義ファイルは、クラスローダを利用して検索および読み込まれます。
したがって、定義ファイルはクラスパスに設定されているディレクトリまたは
アーカイブファイル内に配置する必要があります。
各文字エンコーディングと文字の変換テーブルの関連については、
定義ファイル jp/co/intra_mart/resources/charset/encoding/mapping.xml
に記載されています。
コンストラクタと説明 |
---|
CharacterEncoder(String enc)
文字コード変換のためのエンコーダを作成します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
byte[] |
encode(char c)
指定の文字を
getCharacterEncoding() で表される文字コードへ
エンコードします。 |
byte[] |
encode(char[] c)
指定の文字を
getCharacterEncoding() で表される文字コードへ
エンコードします。 |
byte[] |
encode(String str)
指定の文字列を
getCharacterEncoding() で表される文字コードへ
エンコードします。 |
String |
getCharacterEncoding()
このオブジェクトが対象としている文字エンコーディング名を返します。
|
String |
newString(char[] c)
getCharacterEncoding() で表される文字コードに対応した
新しい文字列を作成します。 |
String |
newString(String str)
getCharacterEncoding() で表される文字コードに対応した
新しい文字列を作成します。 |
protected void |
setCharacterEncoding(String enc)
このオブジェクトが対象とする文字エンコーディングを設定します。
|
public CharacterEncoder(String enc) throws ResourceNotFoundException, ResourceFormatException, IOException
enc
- エンコーディング名NullPointerException
- 引数が null の場合ResourceNotFoundException
- 設定が見つからなかった場合ResourceFormatException
- 設定情報が不適切だった場合IOException
- 入出力エラーpublic String getCharacterEncoding()
protected void setCharacterEncoding(String enc) throws ResourceFormatException, ResourceNotFoundException, IOException
enc
- エンコーディング名NullPointerException
- 引数が null の場合ResourceNotFoundException
- 設定が見つからなかった場合ResourceFormatException
- 設定情報が不適切だった場合IOException
- 入出力エラーpublic byte[] encode(char c) throws UnsupportedEncodingException, IOException
getCharacterEncoding()
で表される文字コードへ
エンコードします。c
- 文字UnsupportedEncodingException
IOException
public byte[] encode(char[] c) throws UnsupportedEncodingException, IOException
getCharacterEncoding()
で表される文字コードへ
エンコードします。c
- 文字配列UnsupportedEncodingException
IOException
public byte[] encode(String str) throws UnsupportedEncodingException, IOException
getCharacterEncoding()
で表される文字コードへ
エンコードします。str
- 文字列UnsupportedEncodingException
IOException
public String newString(String str)
getCharacterEncoding()
で表される文字コードに対応した
新しい文字列を作成します。返される文字列は、引数 str のマッピングを修正した 新しい文字列です。
str
- 文字列public String newString(char[] c)
getCharacterEncoding()
で表される文字コードに対応した
新しい文字列を作成します。
返される文字列は、引数 c のマッピングを修正した
新しい文字列です。
引数の配列 c は変化しません。
c
- 文字配列Copyright © 2012 NTT DATA INTRAMART CORPORATION