パッケージ rabbit.dcs
クラス Dcs
- java.lang.Object
-
- rabbit.dcs.Dcs
-
- すべての実装されたインタフェース:
java.lang.AutoCloseable
,DcsStatus
public class Dcs extends java.lang.Object implements DcsStatus, java.lang.AutoCloseable
Dcs
は文字コード判定と文字コード変換用の DCS ライブラリーにアクセスするための JNI API です。アクセス方法はすべてパブリックなので、それ以外のDcs
のメソッドや変数、定数を参照する必要はありません。不要になったら close() を呼び出してこのDcs
のすべてのリソースを破棄します。バージョン2.00からは、扱うコードに JIS(ISO-2022-JP-2004) が追加され、Unicode のサロゲート文字、日本語 UTF8-MAC にも対応します(以下、青字はバージョン2.00, 2.10の新機能)。以下に対応するコードを示します。
対応文字コード
CP50221(JIS) ISO-2022-JP-2004 CP932(SJIS) EUC-JP CP20932(EUC-JP) CP51932(EUC-JP) eucJP-ms UTF-16BE UTF-16LE UTF-8 (サロゲート文字、日本語 UTF8-MAC 対応)
文字コード判定と変換用のメソッド
バージョン 2.00 からは JIS や EUC の複数コードの扱いなどは、利便性や性能改善のために内部仕様として扱われ、アプリケーションから操作することはなくなりました。それに伴ない文字コードの判定、変換では入力データの形式(バッファー、ストリーム、ファイル)により3つ、計6つのメソッドにまとめられました。
文字コード判定 public int judgesBuffer(int[] atype, int[] lnType, byte[] buf, int length, int stype) public int judgesStream(int[] atype, int[] lnType, InputStream istream, int stype) public int judgesFile(int[] atype, int[] lnType, String path, int stype) 文字コード変換 public int convertBuffer(byte[] buf, int length, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, Object userInfo) public int convertStream(InputStream istream, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, Object userInfo) public int convertFile(String path, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, Object userInfo)
変換不能文字用のメソッド
文字コード変換では、変換後の文字がない場合は変換不能として扱われ、それらの個数や先頭、末尾の値あるいは位置を以下のメソッドで知ることができます。
変換不能文字の扱い public int getNoCharCount() public long getFirstNoChar() public long getLastNoChar() public int getFirstNoCharIndex() public int getLastNoCharIndex()
改行コード判定と設定用のメソッド
バッファによるコード変換 convertBuffer() 等で改行コードの編集を行なう場合、あらかじめ setLtype() で置き換えるコードを設定しておきます。初期値は LTYPE_NON で、改行コードの編集は行ないません。
改行コード・タイプの取得と設定 public int getLtype() public void setLtype(int ltype)
日本語 UTF8-MAC 1文字変換の真偽判定と設定及び、UTF8-MAC コード有無判定用のメソッド
バッファによるコード変換 convertBuffer() 等で日本語 UTF8-MAC 1文字変換の真偽を変更する場合、あらかじめ setUtfmacTo() で設定しておきます。初期値は偽で、日本語 UTF8-MAC 1文字変換を行ないません。
日本語 UTF8-MAC 1文字変換の判定と設定 public boolean isUtfmacTo() public void setUtfmacTo(bool flag)
バッファによるコード判定 judgesBuffer() やバッファによるコード変換 convertBuffer() 等の後に、入力データの日本語 UTF8-MAC コード有無の判定を行ないます。
入力データの日本語 UTF8-MAC コード有無の判定 public boolean utfmacExists()
不正文字の出力抑止の真偽判定と設定用のメソッド
バッファによるコード変換 convertBuffer() 等で不正文字の出力抑止の真偽を変更する場合、あらかじめ setSuppress() で設定しておきます。初期値は偽で、不正文字を出力します。
不正文字出力抑止の判定と設定 public boolean isSuppress() public void setSuppress(bool isSuppress)
その他の文字コード判定と設定用のメソッド
ここからは Dcs API を使用するために必須ではありませんが、文字コードを扱う上で有用なものが定義されています。
半角カナ判定 public static boolean isJisKana(int c) public static boolean isSjisKana(int c) public static boolean isUnibeKana(int c) Unicode, UTF-8 変換 public static int unibeToUtf8Short(byte[] dbuf, int scd) public static int utf8ToUnibeBytes(byte[] dbuf, int doffset, byte[] sbuf, int[] soffset) Unicodeサロゲート文字、UTF-8 変換 public void unibeSurrogateToUtf8(byte[] dbuf, int hcd, int lcd) public void unibeSurrogateToCd(int[] dcd, int hcd, int lcd) 半角カナ変換 public static int jisKanaToSjis(int c) public static int jisKanaToUnibe(int c) public static int sjisKanaToJis(int c) public static int sjisKanaToUnibe(int c) public static int unibeKanaToJis(int c) public static int unibeKanaToSjis(int c)
-
-
ネストされたクラスの概要
-
インタフェースから継承されたネストされたクラス/インタフェース rabbit.dcs.DcsStatus
DcsStatus.TypeNameInfo
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static float
CVERSION
この Dcs のバージョンです。static float
nversion
ネイティブ Dcs API のバージョンです。int
sts
最後の処理ステータスです。-
インタフェースから継承されたフィールド rabbit.dcs.DcsStatus
ASCII, CBOM_ADD, CBOM_DELETE, CBOM_NON, EALLOC, EBOM, ECHAR, ECTYPE, EFULL, EIOFDRANGE, EIOMAX, EIOMODE, EIONOTOPEN, ELTYPE, EMPTY, ENOTEXISTS, ENOTFILE, EOF, EREAD, EROPEN, EUC, EUC_HKANA_B, EUC_HKANA_E, EUC_KKANA_B, EUC_KKANA_E, EUC1, EUC2, EUC3, EUEXPEOD, EWOPEN, EWRITE, JIS, JIS_HKANA_B, JIS_HKANA_E, JIS_KKANA_B, JIS_KKANA_E, JIS_NO_CHAR, JIS2, LTYPE_ALL, LTYPE_CR, LTYPE_CRLF, LTYPE_LF, LTYPE_NON, ND_ALL, ND_ASCII, ND_EUC, ND_EUC1, ND_EUC2, ND_EUC3, ND_JIS, ND_JIS2, ND_SJIS, ND_UTF16BE, ND_UTF16BE_BOM, ND_UTF16LE, ND_UTF16LE_BOM, ND_UTF8, ND_UTF8_BOM, NO_CHAR, NO_CHAR1, NO_CHAR2, NORMAL, OBS_CONTINUE, OBS_STOP, REP_CHAR, SJIS, SJIS_HKANA_B, SJIS_HKANA_E, SJIS_KKANA_B, SJIS_KKANA_E, SUCCESS, TN_ASCII, TN_EMPTY, TN_EUC, TN_EUC1, TN_EUC2, TN_EUC3, TN_JIS, TN_JIS2, TN_SJIS, TN_UNKNOWN, TN_UTF16BE, TN_UTF16BE_BOM, TN_UTF16LE, TN_UTF16LE_BOM, TN_UTF8, TN_UTF8_BOM, UNIBE_HKANA_B, UNIBE_HKANA_E, UNIBE_KKANA_B, UNIBE_KKANA_E, UNKNOWN, UTF16_B0, UTF16_B1, UTF16BE, UTF16BE_BOM, UTF16LE, UTF16LE_BOM, UTF8, UTF8_B0, UTF8_B1, UTF8_B2, UTF8_BOM
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 Dcs()
ネイティブ Dcs を生成します。
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 int
_createDcs()
void
_releaseDcs()
void
close()
この Dcs の持つすべてのリソースを破棄します。static int
cmpBom(int stype, int dtype)
引き数で与えられた文字コード変換で起きる BOM の追加、削除の判定を行います。static boolean
CONFIRMED_CODE_TYPE(int sts)
確定コード・タイプの範囲内であることを判定します。int
convertBuffer(byte[] buffer, int length, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力バッファ buffer、入力サイズ length のデータを指定された文字コードに変換します。int
convertFile(byte[] apath, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力ファイル path のデータを指定された文字コードに変換します。int
convertFile(java.lang.String path, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力ファイル path のデータを指定された文字コードに変換します。int
convertStream(java.io.InputStream istream, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力ストリーム istream のデータを指定された文字コードに変換します。static int
getBits()
アーキテクチャのビット数判定long
getFirstNoChar()
直前に行なったコード変換で、変換できなかった最初の文字を返します。int
getFirstNoCharIndex()
直前に行なったコード変換で、変換できなかった最初のバイト位置を返します。long
getLastNoChar()
直前に行なったコード変換で、変換できなかった最後の文字を返します。int
getLastNoCharIndex()
直前に行なったコード変換で、変換できなかった最後のバイト位置を返します。int
getLtype()
改行コード・タイプ取得int
getNoCharCount()
直前に行なったコード変換で、変換できなかった文字数を返します。static float
getVersion()
ネイティブ Dcs API のバージョンを取得します。static boolean
isEucZenkana(int c)
EUC全角仮名の判定static boolean
isJisKana(int c)
JIS半角カナの判定static boolean
isJisZenkana(int c)
JIS全角仮名の判定static boolean
isLinux()
LINUXバージョン判定static boolean
isSjisKana(int c)
SJIS半角カナの判定static boolean
isSjisZenkana(int c)
シフトJIS全角仮名の判定boolean
isSuppress()
不正文字出力抑止の判定。static boolean
isUnibeKana(int c)
Unicose(BE)半角カナの判定static boolean
isUnibeZenkana(int c)
Unicode(BE)全角仮名の判定boolean
isUtfmacTo()
日本語 UTF8-MAC 1文字変換の判定。static boolean
isWindows()
Windowsバージョン判定static int
jisKanaToSjis(int c)
JIS半角カナ・コードからシフトJISコードへの変換static int
jisKanaToUnibe(int c)
JIS半角カナ・コードからUnicode(BE)コードへの変換int
judgesBuffer(int[] atype, int[] lnType, byte[] buffer, int length, int stype)
入力バッファ buffer、入力サイズ length のデータから文字コードの判定を行ないます。int
judgesFile(int[] atype, int[] lnType, byte[] apath, int stype)
入力ファイル path のデータから文字コードの判定を行ないます。int
judgesFile(int[] atype, int[] lnType, java.lang.String path, int stype)
入力ファイル path のデータから文字コードの判定を行ないます。int
judgesStream(int[] atype, int[] lnType, java.io.InputStream istream, int stype)
入力ストリーム istream のデータから文字コードの判定を行ない、istream は呼び出し側でクローズします。static boolean
remainsAscii(int dtype)
変換後も ASCII である出力タイプの判定void
setLtype(int ltype)
改行コード・タイプ設定void
setSuppress(boolean isSuppress)
不正文字出力抑止の設定。void
setUtfmacTo(boolean flag)
日本語 UTF8-MAC 1文字変換の設定static int
sjisKanaToJis(int c)
シフトJIS半角カナ・コードからJISコードへの変換static int
sjisKanaToUnibe(int c)
シフトJIS半角カナ・コードからUnicode(BE)コードへの変換static int
unibeKanaToJis(int c)
Unicode(BE)半角カナ・コードからJISコードへの変換static int
unibeKanaToSjis(int c)
Unicode(BE)半角カナ・コードからシフトJISコードへの変換void
unibeSurrogateToCd(int[] dcd, int hcd, int lcd)
Unicode(BE)サロゲート・ペアからコードへの変換。void
unibeSurrogateToUtf8(byte[] dbuf, int hcd, int lcd)
Unicode(BE)サロゲート・ペアからUTF-8への変換。static int
unibeToUtf8Short(byte[] dbuf, int scd)
Unicode(BE)(16bit)からUTF-8への変換。static int
utf8ToUnibeBytes(byte[] dbuf, int doffset, byte[] sbuf, int[] soffset)
UTF-8コードからUnicode(BE)への変換。boolean
utfmacExists()
入力データの日本語 UTF8-MAC コード有無の判定
-
-
-
フィールドの詳細
-
CVERSION
public static final float CVERSION
この Dcs のバージョンです。- 関連項目:
nversion
,getVersion()
, 定数フィールド値
-
nversion
public static float nversion
ネイティブ Dcs API のバージョンです。Dcs クラスのロード時に設定されます。- 関連項目:
CVERSION
,getVersion()
-
sts
public int sts
最後の処理ステータスです。
-
-
コンストラクタの詳細
-
Dcs
public Dcs() throws DcsException
ネイティブ Dcs を生成します。必要なくなれば Dcs.close() を呼び出して Dcs の持つすべてのリソースを破棄して下さい。何らかの理由で Dcs が生成されない場合は DcsException がスローされます。- 例外:
DcsException
- 何らかの理由で Dcs が生成されない場合は DcsException がスローされます。
-
-
メソッドの詳細
-
CONFIRMED_CODE_TYPE
public static boolean CONFIRMED_CODE_TYPE(int sts)
確定コード・タイプの範囲内であることを判定します。- パラメータ:
sts
- 判定を行なう処理ステータス- 戻り値:
- 指定したステータスが確定コード・タイプの範囲内であれば真、それ以外は偽を返します。
- 導入されたバージョン:
- 2.0
-
isLinux
public static boolean isLinux()
LINUXバージョン判定- 戻り値:
- このクラスがLINUXバージョンの時は真、それ以外は偽を返します。
- 導入されたバージョン:
- 1.1
-
isWindows
public static boolean isWindows()
Windowsバージョン判定- 戻り値:
- このクラスがWindowsバージョンの時は真、それ以外は偽を返します。
- 導入されたバージョン:
- 2.0
-
getBits
public static int getBits()
アーキテクチャのビット数判定- 戻り値:
- このクラスのアーキテクチャ・ビット数を返します。
- 導入されたバージョン:
- 1.1
-
close
public void close()
この Dcs の持つすべてのリソースを破棄します。- 定義:
close
インタフェース内java.lang.AutoCloseable
- 関連項目:
Object.finalize()
-
_createDcs
public int _createDcs()
-
_releaseDcs
public void _releaseDcs()
-
getVersion
public static float getVersion()
ネイティブ Dcs API のバージョンを取得します。nversion
と同値です。
-
isJisKana
public static boolean isJisKana(int c)
JIS半角カナの判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの半角カナに含まれる時は真、それ以外は偽を返します。
-
isSjisKana
public static boolean isSjisKana(int c)
SJIS半角カナの判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの半角カナに含まれる時は真、それ以外は偽を返します。
-
isUnibeKana
public static boolean isUnibeKana(int c)
Unicose(BE)半角カナの判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの半角カナに含まれる時は真、それ以外は偽を返します。
-
isJisZenkana
public static boolean isJisZenkana(int c)
JIS全角仮名の判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの全角平仮名、又は全角片仮名に含まれる時は真、それ以外は偽を返します。
-
isSjisZenkana
public static boolean isSjisZenkana(int c)
シフトJIS全角仮名の判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの全角平仮名、又は全角片仮名に含まれる時は真、それ以外は偽を返します。
-
isEucZenkana
public static boolean isEucZenkana(int c)
EUC全角仮名の判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの全角平仮名、又は全角片仮名に含まれる時は真、それ以外は偽を返します。
-
isUnibeZenkana
public static boolean isUnibeZenkana(int c)
Unicode(BE)全角仮名の判定- パラメータ:
c
- 真偽を判定する文字コード- 戻り値:
- 指定した文字コードがこの文字コードセットの全角平仮名、又は全角片仮名に含まれる時は真、それ以外は偽を返します。
-
remainsAscii
public static boolean remainsAscii(int dtype)
変換後も ASCII である出力タイプの判定- 戻り値:
- ASCII から変換を掛けても ASCII のまま変わらない出力タイプの時は真、それ以外は偽を返します。
- 導入されたバージョン:
- 2.11
-
unibeToUtf8Short
public static int unibeToUtf8Short(byte[] dbuf, int scd)
Unicode(BE)(16bit)からUTF-8への変換。出力バッファのサイズ・チェックはしないため十分な領域を確保する必要があります。- パラメータ:
dbuf
- 変換後の文字コードを格納するバッファscd
- 変換前の文字コード- 戻り値:
- dbuf へ格納したバイト数を返します。
-
utf8ToUnibeBytes
public static int utf8ToUnibeBytes(byte[] dbuf, int doffset, byte[] sbuf, int[] soffset)
UTF-8コードからUnicode(BE)への変換。入力バイト数が4バイトならサロゲート文字であり出力も4バイトとなり、 その他の出力はすべて2バイトです。出力バッファのサイズ・チェックはしないため十分な領域を確保する必要があります。- パラメータ:
dbuf
- 変換後の文字コードを格納するバッファdoffset
- dbuf へ格納する開始位置sbuf
- 変換前の文字コードを取り出すバッファsoffset
- sbuf から取り出す開始位置。処理したバイト数が加算されます。- 戻り値:
- 変換が成功した時は SUCCESS、不正なコードがあった時は ECHAR、コードの途中で終わっている時は EUEXPEOD を返します。
-
unibeSurrogateToUtf8
public void unibeSurrogateToUtf8(byte[] dbuf, int hcd, int lcd)
Unicode(BE)サロゲート・ペアからUTF-8への変換。 出力は4バイトとなりますが、出力バッファのサイズ・チェックはしないため十分な領域を確保する必要があります。- パラメータ:
dbuf
- 変換後の文字コードを格納するバッファhcd
- 変換前の上位文字コードlcd
- 変換前の下位文字コード- 導入されたバージョン:
- 2.0
-
unibeSurrogateToCd
public void unibeSurrogateToCd(int[] dcd, int hcd, int lcd)
Unicode(BE)サロゲート・ペアからコードへの変換。- パラメータ:
dcd
- 変換後の文字コードを格納するバッファhcd
- 変換前の上位文字コードlcd
- 変換前の下位文字コード- 導入されたバージョン:
- 2.0
-
jisKanaToSjis
public static int jisKanaToSjis(int c)
JIS半角カナ・コードからシフトJISコードへの変換- パラメータ:
c
- 変換対象の文字コード- 戻り値:
- 変換後の文字コード。該当がない時は不正値を返します。
-
jisKanaToUnibe
public static int jisKanaToUnibe(int c)
JIS半角カナ・コードからUnicode(BE)コードへの変換- パラメータ:
c
- 変換対象の文字コード- 戻り値:
- 変換後の文字コード。該当がない時は不正値を返します。
-
sjisKanaToJis
public static int sjisKanaToJis(int c)
シフトJIS半角カナ・コードからJISコードへの変換- パラメータ:
c
- 変換対象の文字コード- 戻り値:
- 変換後の文字コード。該当がない時は不正値を返します。
-
sjisKanaToUnibe
public static int sjisKanaToUnibe(int c)
シフトJIS半角カナ・コードからUnicode(BE)コードへの変換- パラメータ:
c
- 変換対象の文字コード- 戻り値:
- 変換後の文字コード。該当がない時は不正値を返します。
-
unibeKanaToJis
public static int unibeKanaToJis(int c)
Unicode(BE)半角カナ・コードからJISコードへの変換- パラメータ:
c
- 変換対象の文字コード- 戻り値:
- 変換後の文字コード。該当がない時は不正値を返します。
-
unibeKanaToSjis
public static int unibeKanaToSjis(int c)
Unicode(BE)半角カナ・コードからシフトJISコードへの変換- パラメータ:
c
- 変換対象の文字コード- 戻り値:
- 変換後の文字コード。該当がない時は不正値を返します。
-
judgesBuffer
public int judgesBuffer(int[] atype, int[] lnType, byte[] buffer, int length, int stype)
入力バッファ buffer、入力サイズ length のデータから文字コードの判定を行ないます。
atype は未確定の文字コード・タイプ(CONFIRMED_CODE_TYPE(sts)が偽)がある時にはその値、 一意に決まればリターン値と同じになり、エラーの場合は UNKNOWN(-1) が設定されます。 不要ならば null を設定します。
lnType は 入力データの改行コード・タイプであり、LTYPE_NON, LTYPE_LF, LTYPE_CR, LTYPE_CRLF, LTYPE_ALL の何れかが混在していた時はそれらの OR 値が設定されます。 不要ならば null を設定します。
stype は文字コードが一意に決まらなかった場合に、同一の文字コード・タイプがあれば、その値に決定します。 不要ならば UNKNOWN を設定します。- パラメータ:
atype
- 未確定の文字コード・タイプlnType
- 改行コード・タイプbuffer
- 入力バッファlength
- 入力サイズstype
- 入力データの文字コード・タイプ- 戻り値:
- 判定した文字コード・タイプを返します。 メモリー・アロケート・エラーの時は EALLOC。
- 導入されたバージョン:
- 2.0
-
judgesStream
public int judgesStream(int[] atype, int[] lnType, java.io.InputStream istream, int stype)
入力ストリーム istream のデータから文字コードの判定を行ない、istream は呼び出し側でクローズします。
atype は未確定の文字コード・タイプ(CONFIRMED_CODE_TYPE(sts)が偽)がある時にはその値、 一意に決まればリターン値と同じになり、エラーの場合は UNKNOWN(-1) が設定されます。 不要ならば null を設定します。
lnType は 入力データの改行コード・タイプであり、LTYPE_NON, LTYPE_LF, LTYPE_CR, LTYPE_CRLF, LTYPE_ALL の何れかが混在していた時はそれらの OR 値が設定されます。 不要ならば null を設定します。
stype は文字コードが一意に決まらなかった場合に、同一の文字コード・タイプがあれば、その値に決定します。 不要ならば UNKNOWN を設定します。- パラメータ:
atype
- 未確定の文字コード・タイプlnType
- 改行コード・タイプistream
- 入力ストリームstype
- 入力データの文字コード・タイプ- 戻り値:
- 判定した文字コード・タイプを返します。 メモリー・アロケート・エラーの時は EALLOC、 ファイル入力エラーの時は EREAD。
- 導入されたバージョン:
- 2.0
-
judgesFile
public int judgesFile(int[] atype, int[] lnType, java.lang.String path, int stype)
入力ファイル path のデータから文字コードの判定を行ないます。
atype は未確定の文字コード・タイプ(CONFIRMED_CODE_TYPE(sts)が偽)がある時にはその値、 一意に決まればリターン値と同じになり、エラーの場合は UNKNOWN(-1) が設定されます。 不要ならば null を設定します。
lnType は 入力データの改行コード・タイプであり、LTYPE_NON, LTYPE_LF, LTYPE_CR, LTYPE_CRLF, LTYPE_ALL の何れかが混在していた時はそれらの OR 値が設定されます。 不要ならば null を設定します。
stype は文字コードが一意に決まらなかった場合に、同一の文字コード・タイプがあれば、その値に決定します。 不要ならば UNKNOWN を設定します。- パラメータ:
atype
- 未確定の文字コード・タイプlnType
- 改行コード・タイプpath
- 入力ファイル・パスstype
- 入力データの文字コード・タイプ- 戻り値:
- 判定した文字コード・タイプを返します。 メモリー・アロケート・エラーの時は EALLOC、 ファイル・オープン・エラーの時は EROPEN、 ファイル入力エラーの時は EREAD。
- 導入されたバージョン:
- 2.0
-
judgesFile
public int judgesFile(int[] atype, int[] lnType, byte[] apath, int stype)
入力ファイル path のデータから文字コードの判定を行ないます。
atype は未確定の文字コード・タイプ(CONFIRMED_CODE_TYPE(sts)が偽)がある時にはその値、 一意に決まればリターン値と同じになり、エラーの場合は UNKNOWN(-1) が設定されます。 不要ならば null を設定します。
lnType は 入力データの改行コード・タイプであり、LTYPE_NON, LTYPE_LF, LTYPE_CR, LTYPE_CRLF, LTYPE_ALL の何れかが混在していた時はそれらの OR 値が設定されます。 不要ならば null を設定します。
stype は文字コードが一意に決まらなかった場合に、同一の文字コード・タイプがあれば、その値に決定します。 不要ならば UNKNOWN を設定します。- パラメータ:
atype
- 未確定の文字コード・タイプlnType
- 改行コード・タイプapath
- 入力ファイル・パスのバイト配列stype
- 入力データの文字コード・タイプ- 戻り値:
- 判定した文字コード・タイプを返します。 メモリー・アロケート・エラーの時は EALLOC、 ファイル・オープン・エラーの時は EROPEN、 ファイル入力エラーの時は EREAD。
- 導入されたバージョン:
- 2.0
-
cmpBom
public static int cmpBom(int stype, int dtype)
引き数で与えられた文字コード変換で起きる BOM の追加、削除の判定を行います。同じ文字コードであれば追加や削除になり、それ以外は非となります。UTF16BE から UTF16BE_BOM への変換は CBOM_ADD、UTF16BE から UTF16LE_BOM への変換は CBOM_NON を返します。- パラメータ:
stype
- 変換前の文字コードdtype
- 変換後の文字コード- 戻り値:
- BOM 追加/削除の判定値(CBOM_NON、CBOM_ADD、CBOM_DELETE の何れか)を返します。
-
convertBuffer
public int convertBuffer(byte[] buffer, int length, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力バッファ buffer、入力サイズ length のデータを指定された文字コードに変換します。 初めに入力データの文字コード判定を行ない、 一意に決定した場合は指定された dtype の文字コードに変換します。
stype は judgesBuffer() 等のコード判定だけを行なうメソッドと同様に、 文字コードが一意に決まらなかった場合に、 同一の文字コード・タイプがあれば、その値に決定します。 不要ならば UNKNOWN を設定します。isForced が真ならば、Dcs.UNKNOWN 以外の stype の値が強制的に採られます。ただし、stype や実際の文字コードが JIS や BOM 付きの UTF の場合は無効となります。
observer のメソッド observe() は変換前のコード判定が終了した時点で、渡される判定結果 sts により必ず1回呼び出されます。 継続ならば OBS_CONTINUE、中止する時は OBS_STOP で戻ります。 致命的なエラーや入力データの文字コード・タイプが確定できなかった(CONFIRMED_CODE_TYPE(sts)が偽)場合は判定結果が convertBuffer() の返却値となり、observe() が OBS_CONTINUE を返しても継続されません。 変換結果をファイルに出力する場合は observe() がそのファイルをオープンし、convertBuffer() の返った後、呼び出し側でクローズします。 observer のメソッド observe() が不要ならば null を設定します。
writer のメソッド write() は変換中に編集バッファがフルになる度に呼び出され、 渡される出力バッファ buffer、出力サイズ length により実際の出力を行ないます。 出力が成功したら SUCCESS、ファイル出力エラーなら EWRITE、 メモリー・アロケート・エラーならば EALLOC で戻ります。 write() の返却値が SUCCESS ならば継続され、それ以外の値なら中断されます。 最後の呼び出しの場合、これらは convertBuffer() の返却値となります。 writer のメソッド write() が不要ならば null を設定します。
userInfo は observe(), write() に渡すユーザー情報です。不要ならば null を設定します。- パラメータ:
buffser
- 入力バッファlength
- 入力サイズstype
- 入力データの文字コード・タイプdtype
- 出力データの文字コード・タイプisForced
- 入力データの文字コード・タイプを強制的に stype とするobserver
- コード判定結果の監視を行なうインターフェースwriter
- コード変換データの出力を行なうインターフェースuserInfo
- ユーザー情報- 戻り値:
- 変換が成功した場合は SUCCESS、 判定終了時に observer のメソッド observe() を呼び出して中止した場合は ECANOBS、 コード判定エラー(CONFIRMED_CODE_TYPE(sts)が偽)の時はその値を返します。 メモリー・アロケート・エラーの時は EALLOC。
- 導入されたバージョン:
- 2.0
-
convertStream
public int convertStream(java.io.InputStream istream, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力ストリーム istream のデータを指定された文字コードに変換します。
istream は呼び出し側でクローズします。入力エラーの時は EREAD を返します。
その他の機能は convertBuffer() と同じです。- パラメータ:
istream
- 入力ストリームstype
- 入力データの文字コード・タイプdtype
- 出力データの文字コード・タイプisForced
- 入力データの文字コード・タイプを強制的に stype とするobserver
- コード判定結果の監視を行なうインターフェースwriter
- コード変換データの出力を行なうインターフェースuserInfo
- ユーザー情報- 戻り値:
- 変換が成功した場合は SUCCESS、 判定終了時に observer のメソッド observe() を呼び出して中止した場合は ECANOBS、 コード判定エラー(CONFIRMED_CODE_TYPE(sts)が偽)の時はその値を返します。 メモリー・アロケート・エラーの時は EALLOC、 入力エラーの時は EREAD。
- 導入されたバージョン:
- 2.0
-
convertFile
public int convertFile(java.lang.String path, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力ファイル path のデータを指定された文字コードに変換します。
ファイル・オープン・エラーの時は EROPEN、入力エラーの時は EREAD を返します。
その他の機能は convertBuffer() と同じです。- パラメータ:
path
- 入力ファイル・パスstype
- 入力データの文字コード・タイプdtype
- 出力データの文字コード・タイプisForced
- 入力データの文字コード・タイプを強制的に stype とするobserver
- コード判定結果の監視を行なうインターフェースwriter
- コード変換データの出力を行なうインターフェースuserInfo
- ユーザー情報- 戻り値:
- 変換が成功した場合は SUCCESS、 判定終了時に observer のメソッド observe() を呼び出して中止した場合は ECANOBS、 コード判定エラー(CONFIRMED_CODE_TYPE(sts)が偽)の時はその値を返します。 メモリー・アロケート・エラーの時は EALLOC、 ファイル・オープン・エラーの時は EROPEN、 入力エラーの時は EREAD。
- 導入されたバージョン:
- 2.0
-
convertFile
public int convertFile(byte[] apath, int stype, int dtype, boolean isForced, ConvertObserver observe, ConvertWriter writer, java.lang.Object userInfo)
入力ファイル path のデータを指定された文字コードに変換します。
ファイル・オープン・エラーの時は EROPEN、入力エラーの時は EREAD を返します。
その他の機能は convertBuffer() と同じです。- パラメータ:
apath
- 入力ファイル・パスのバイト配列stype
- 入力データの文字コード・タイプdtype
- 出力データの文字コード・タイプobserver
- コード判定結果の監視を行なうインターフェースwriter
- コード変換データの出力を行なうインターフェース- 戻り値:
- 変換が成功した場合は SUCCESS、 判定終了時に observer のメソッド observe() を呼び出して中止した場合は ECANOBS、 コード判定エラー(CONFIRMED_CODE_TYPE(sts)が偽)の時はその値を返します。 メモリー・アロケート・エラーの時は EALLOC、 ファイル・オープン・エラーの時は EROPEN、 入力エラーの時は EREAD。
- 導入されたバージョン:
- 2.0
-
getNoCharCount
public int getNoCharCount()
直前に行なったコード変換で、変換できなかった文字数を返します。- 戻り値:
- 変換ができなかった文字数を返します。
-
getFirstNoChar
public long getFirstNoChar()
直前に行なったコード変換で、変換できなかった最初の文字を返します。- 戻り値:
- 変換ができなかった最初の文字を返します。すべて変換できた時はゼロ
-
getLastNoChar
public long getLastNoChar()
直前に行なったコード変換で、変換できなかった最後の文字を返します。- 戻り値:
- 変換ができなかった最後の文字を返します。すべて変換できた時はゼロ
-
getFirstNoCharIndex
public int getFirstNoCharIndex()
直前に行なったコード変換で、変換できなかった最初のバイト位置を返します。- 戻り値:
- 変換ができなかった最初のバイト位置を返します。すべて変換できた時は -1
-
getLastNoCharIndex
public int getLastNoCharIndex()
直前に行なったコード変換で、変換できなかった最後のバイト位置を返します。- 戻り値:
- 変換ができなかった最後のバイト位置を返します。すべて変換できた時は -1
-
getLtype
public int getLtype()
改行コード・タイプ取得- 戻り値:
- 設定されている改行コード・タイプを返します(LTYPE_NON, LTYPE_LF, LTYPE_CR, LTYPE_CRLF の何れか。初期値は LTYPE_NON であり、改行コードの編集を行わない)。
- 導入されたバージョン:
- 1.1
-
setLtype
public void setLtype(int ltype)
改行コード・タイプ設定- パラメータ:
ltype
- 設定する改行コード・タイプ(LTYPE_NON, LTYPE_LF, LTYPE_CR, LTYPE_CRLF の何れか)- 導入されたバージョン:
- 1.1
-
isUtfmacTo
public boolean isUtfmacTo()
日本語 UTF8-MAC 1文字変換の判定。初期値は偽であり、日本語 UTF8-MACの1文字変換を行いません。- 戻り値:
- 日本語 UTF8-MACの1文字変換の真偽を返します。
- 導入されたバージョン:
- 2.1
-
setUtfmacTo
public void setUtfmacTo(boolean flag)
日本語 UTF8-MAC 1文字変換の設定- パラメータ:
flag
- 日本語 UTF8-MAC 1文字変換の真偽を設定します。- 導入されたバージョン:
- 2.1
-
utfmacExists
public boolean utfmacExists()
入力データの日本語 UTF8-MAC コード有無の判定- 戻り値:
- 入力データの日本語 UTF8-MAC コードの有無を返します。
- 導入されたバージョン:
- 2.1
-
isSuppress
public boolean isSuppress()
不正文字出力抑止の判定。 convertBuffer() 等によるコード変換時に発生する不正文字抑止の真偽を判定します。 初期値は偽であり、不正文字を出力します。- 戻り値:
- 設定されている不正文字出力抑止の真偽を返します。
- 導入されたバージョン:
- 2.0
-
setSuppress
public void setSuppress(boolean isSuppress)
不正文字出力抑止の設定。 convertBuffer() 等によるコード変換時に発生する不正文字出力抑止の真偽を設定します。 出力を抑止する時は真、それ以外は偽。- パラメータ:
isSuppress
- 不正文字出力抑止の真偽を設定します。- 導入されたバージョン:
- 2.0
-
-