3.2. コード変換

クラス名:VISConCnv

コード変換は、ユーティリティクラスに含まれています。

3.2.1. API概要

setCodeTypeホストのコード種別を設定する
getCodeTypeホストのコード種別を取得する
setJISType変換時に基本となるJIS年度種別を設定する
getJISTypeJISTypeを取得する
setKOCode JIS変換時に使用するKOの種別を設定する
getKOCode JIS変換時に使用するKOの種別を取得する
setInv コード変換時に不正コードが存在した場合の置き換え文字をJISコード体系で設定する
getInvInvalidCodeを取得する
setPad1PaddingCodeをJISコードの体系で設定する
getPad11バイトPaddingCodeをJISコードの体系で取得する
setPad2PaddingCodeをJISコードの体系で設定する
getPad22バイトPaddingCodeをJISコードの体系で取得する
setErrLevelコード変換が返却するExceptionのレベルを設定する
getErrLevelコード変換が返却するExceptionのレベルを取得する
UnicodeToSCode入力されたUNICODE形式のdata(String型)をあらかじめ設定されたサーバのコード体系のデータに変換する
SCodeToUnicode入力されたinBuffのoffset位置からsize分のデータを、サーバコード体系からUNICODE形式の文字列に変換する
ArrayToSendData入力されたdata(バイト配列)をoutBufferのoffset位置からsizeバイト分格納する
RecvDataToArray入力されたinBufferのoffset位置からsize分のデータを、outDataのバイト配列に格納する
JIStoEK入力されたinBufferのoffset位置からsize分のデータを、JIS8コードからEBCDIKコードに変換し、outBufferのoutOffset位置から格納する
EKtoJIS入力されたinBufferのoffset位置からsize分のデータを、EBCDIKコードからJIS8コードに変換し、outBufferのoutOffset位置から格納する

3.2.1.1. setCodeType


名称 setCodeType - ホストのコード種別を設定する
形式
 void setCodeType(int codeType)
 throws VISConException
    
説明

ホストのコード種別を設定します。

codeType - ホストのコード種別
VCN_CODE_SJISSJIS
VCN_CODE_EUCEUC
VCN_CODE_JISJIS
VCN_CODE_JIPSEJIPS(E)(既定値)

戻り値 ありません。
エラー VISConException:コード種別が範囲外の時(VCN_CODE_SJISVCN_CODE_EUCVCN_CODE_JISVCN_CODE_JIPSEのみ有効)
関連項目 VISコネクタの生成ソースの値は、「コンポーネント定義」画面の「コード変換(OUT)]で指定した値です。


3.2.1.2. getCodeType


名称 getCodeType - ホストのコード種別を取得する
形式
 int getCodeType()
    
説明

ホストのコード種別を取得します。

戻り値 ホストのコード種別
VCN_CODE_SJISSJIS
VCN_CODE_EUCEUC
VCN_CODE_JISJIS
VCN_CODE_JIPSEJIPS(E)(既定値)
エラー ありません。
関連項目 ありません。


3.2.1.3. setJISType


名称 setJISType - 変換時に基本となるJIS年度種別を設定する
形式
 void setJISType(int JISType)
 throws VISConException
    
説明

変換時に基本となるJIS年度種別を設定します。
変換相手コードに異なるJIS年度が指定されている場合、字体の入れ替えを行います。
変換後コードがJISの場合、JIS年度によりKI/KOの切り替えを行います。

JISType - JISで基本となるJIS年度種別
VCN_JIS78JISX0208-1978
VCN_JIPSJISX0208-1978ベース
VCN_JIS83JISX0208-1983
VCN_JIS90JISX0208-1990(既定値)
VCN_JIS90_0212JISX0212-1990

KI/KOは以下のように設定されます。

VCN_JIS78 JISX0208-1978
KI:0x1b2440 KO:0x1b2842
JISX 0208-1978/JISX 0208-1990の字体入替えを行います。
VCN_JIPS JISX0208-1978ベース
KI:0x1a70 KO:0x1a71
JISX 0208-1978/JISX 0208-1990の字体入替えを行います。
G0/G1コードのマッピングを行います。
UnicodeのPrivateUserAreaとJIPSの84〜94区のマッピングを行います。
VCN_JIS83 JISX0208-1983
KI:0x1b2442 KO:0x1b2842
VCN_JIS90JISX0208-1990(既定値)
KI:0x1b26401b2442 KO:0x1b2842
VCN_JIS90_0212 JISX0212-1990
KI:0x1b242844 KO:0x1b2842
なお、setCodeTypeでcodeTypeにVCN_JISを指定した場合のみ有効です。
codeTypeにVCN_CODE_EUCを指定した場合はVCN_JIS83VCN_CODE_JIPSEを指定した場合はVCN_JIPS固定で変換を行います。
codeTypeにVCN_CODE_JIPSEを指定した場合はKI:0x3f75/KO:0x3f76になります。

戻り値 ありません。
エラー VISConException:不正な値(VCN_JIS78VCN_JIPSVCN_JIS83VCN_JIS90VCN_JIS90_0212のみ有効)
関連項目 VISコネクタの生成ソースの既定値は、VCN_JIPSです。


3.2.1.4. getJISType


名称 getJISType - JISTypeを取得する
形式
 int getJISType()
    
説明

JISTypeを取得します。

戻り値 JISで基本となるJIS年度種別
VCN_JIS78JISX0208-1978
VCN_JIPSJISX0208-1978ベース
VCN_JIS83JISX0208-1983
VCN_JIS90JISX0208-1990(既定値)
VCN_JIS90_0212JISX0212-1990
エラー ありません。
関連項目 ありません。


3.2.1.5. setKOCode


名称 setKOCode - JIS変換時に使用するKOの種別を設定する
形式
 void setKOCode (int KOType)
 throws VISConException
    
説明

JIS変換時に使用するKOの種別を設定します。

KOType - 1バイト文字エスケープシーケンス
VCN_KO_RMローマ字切り替え
VCN_KO_ASCASCII切り替え(既定値)

KOは以下のように設定されます。

VCN_KO_RM ローマ字切り替え
KO:0x1b284a
VCN_KO_ASC ASCII切り替え
KO:0x1b2842
なお、setKOCodeを使用しない場合、既定値は0x1b2842です。
JISTypeにVCN_JIPSを設定している場合は、無視します。

戻り値 ありません。
エラー VISConException:不正な値(VCN_KO_RMVCN_KO_ASCのみ有効)
関連項目 VISコネクタの生成ソースの既定値ではJISTypeにVCN_JIPSを設定しているため生成しません。


3.2.1.6. getKOCode


名称 getKOCode - JIS変換時に使用するKOの種別を取得する
形式
 int getKOCode ()
    
説明

JIS変換時に使用するKOの種別を取得します。

JISTypeがVCN_JIPSの場合、戻り値にVCN_KO_JIPSを返却します。

戻り値 1バイト文字エスケープシーケンス
VCN_KO_RMローマ字切り替え
VCN_KO_ASCASCII切り替え(既定値)
VCN_KO_JIPSJIPSのKO
エラー ありません。
関連項目 ありません。


3.2.1.7. setInv


名称 setInv - コード変換時に不正コードが存在した場合の置き換え文字をJISコード体系で設定する
形式
 void setInv (byte inv[])
    
説明

コード変換時に不正コードが存在した場合の置き換え文字をJISコード体系で設定します。
2バイトコードに不正文字があった場合、指定したInvalidCodeに置き換えます。

inv - 2バイトInvalidCode (既定値:0x2176 *)

setInvで置き換え文字を指定しない場合は、不正文字は、2バイトアスタリスクに置き換えられます。

戻り値 ありません。
エラー ありません。
関連項目 VISコネクタの生成ソースでは生成しません。生成ソースは既定値の「0x2176 *」になります。


3.2.1.8. getInv


名称 getInv - InvalidCodeを取得する
形式
 byte[] getInv()
    
説明

InvalidCodeを取得します。

戻り値 2バイトInvalidCode (既定値:0x2176 *)
エラー ありません。
関連項目 ありません。


3.2.1.9. setPad1


名称 setPad1 - PaddingCodeをJISコードの体系で設定する
形式
 void setPad1(byte pad1)
    
説明

PaddingCodeをJISコードの体系で設定します。
コード変換後のデータ長が、変換後データ格納領域のサイズより小さい場合に、余った領域を指定したPaddingCodeでPaddingします。

pad1 - 1バイトPaddingコード (既定値:0x20 半角空白)

setPad1でPaddingCodeを指定しない場合は、空白パディングします。
optflgにVCN_CNVTYPE_ANKVCN_CNVTYPE_MIXを指定した場合に指定したPaddingCodeを使用します。

戻り値 ありません。
エラー ありません。
関連項目 VISコネクタの生成ソースでは生成しません。生成ソースは既定値の「0x20 半角空白」になります。


3.2.1.10. getPad1


名称 getPad1 - 1バイトPaddingCodeをJISコードの体系で取得する
形式
 byte getPad1()
    
説明

1バイトPaddingCodeをJISコードの体系で取得します。

戻り値 1バイトPaddingコード (既定値:0x20 半角空白)
エラー ありません。
関連項目 ありません。


3.2.1.11. setPad2


名称 setPad2 - PaddingCodeをJISコードの体系で設定する
形式
 void setPad2(byte pad2[])
    
説明

PaddingCodeをJISコードの体系で設定します。
コード変換後のデータ長が、変換後データ格納領域のサイズより小さい場合に、余った領域を指定したPaddingCodeでPaddingします。

pad2 - 2バイトPaddingコード (既定値:0x2121 全角空白)

setPad2でPaddingCodeを指定しない場合は、空白パディングします。
optflgにVCN_CNVTYPE_2BYTEを指定した場合に指定したPaddingCodeを使用します。

戻り値 ありません。
エラー ありません。
関連項目 VISコネクタの生成ソースでは生成しません。生成ソースは既定値の「0x2121 全角空白」になります。


3.2.1.12. getPad2


名称 getPad2 - 2バイトPaddingCodeをJISコードの体系で取得する
形式
 byte[] getPad2()
    
説明

2バイトPaddingCodeをJISコードの体系で取得します。

戻り値 2バイトPaddingコード (既定値:0x2121 全角空白)
エラー ありません。
関連項目 ありません。


3.2.1.13. setErrLevel


名称 setErrLevel - コード変換が返却するExceptionのレベルを設定する
形式
 void setErrLevel(int errLevel)
    
説明

コード変換が返却するExceptionのレベルを設定します。

errLevel - エラーレベル種別
VCN_FATAL致命的エラーのみ検出(既定値)
VCN_WARN致命的/Warningレベルエラー検出
致命的エラー:JDKのエラー
Warningレベルエラー:不正文字が存在したため不正文字をInvalidCodeに置換/変換後データ格納領域不足

VCN_WARN以外の値を設定した場合、VCN_FATALとして動作します。

戻り値 ありません。
エラー ありません。
関連項目 VISコネクタの生成ソースの既定値は、ホストへデータを送信する場合はVCN_WARN、ホストからデータを受信した場合はVCN_FATALです。


3.2.1.14. getErrLevel


名称 getErrLevel - コード変換が返却するExceptionのレベルを取得する
形式
 int getErrLevel()
    
説明

コード変換が返却するExceptionのレベルを取得します。

戻り値 エラーレベル種別
VCN_FATAL致命的エラーのみ検出(既定値)
VCN_WARN致命的/Warningレベルエラー(不正文字が存在したため不正文字をInvalidCodeに置換/変換後データ格納領域不足)検出
致命的エラー:JDKのエラー
Warningレベルエラー:不正文字が存在したため不正文字をInvalidCodeに置換/変換後データ格納領域不足
エラー ありません。
関連項目 ありません。


3.2.1.15. UnicodeToSCode


名称 UnicodeToSCode - 入力されたUNICODE形式のdata(String型)をあらかじめ設定されたサーバのコード体系のデータに変換する
形式
 int UnicodeToSCode(byte outBuffer[], int offset, String data,
                    int size, int mix, int alignment)
 throws VISConException
    
説明

入力されたUNICODE形式のdata(String型)をあらかじめ設定されたサーバのコード体系のデータに変換します。
変換済みデータは、outBufferのoffset位置からalignmentで指定する形式にてsizeバイト分格納します。
変換済みデータの大きさがsizeバイトに満たない場合、mixが混在の場合は半角空白、2バイトの場合は全角空白にて不足分をパディングします。
実際に格納したデータの長さは戻り値で返却します。

outBuffer - データ格納域
offset - 格納開始位置
data - 変換対象データ(String型)
size - 格納サイズ
mix - 混在指定
VCN_CNVTYPE_ANKANKのみ
VCN_CNVTYPE_MIX混在
VCN_CNVTYPE_2BYTE2バイトのみ
alignment - 配置位置
VCN_ALIGNMENT_LEFT左詰め
VCN_ALIGNMENT_RIGHT右詰め

データ格納域はoffset+size以上確保する必要があります。
サーバのコードは、あらかじめsetCodeTypeにて設定します。

戻り値 変換後の長さ
エラー VISConException:
JDKによるコード変換失敗(Encode指定誤り)
2バイトのみデータ時、変換後データ格納領域サイズが奇数
関連項目 ありません。


3.2.1.16. SCodeToUnicode


名称 SCodeToUnicode - 入力されたinBuffのoffset位置からsize分のデータを、サーバコード体系からUNICODE形式の文字列に変換する
形式
 String SCodeToUnicode(byte inBuffer[], offset, int size, int mix)
 throws VISConException
    
説明

入力されたinBuffのoffset位置からsize分のデータを、サーバコード体系からUNICODE形式の文字列に変換します。
変換した文字列は戻り値で返却します。

inBuffer - 変換対象バイト配列
offset - 変換開始位置
size - 変換サイズ
mix - 混在指定
VCN_CNVTYPE_ANKANKのみ
VCN_CNVTYPE_MIX混在
VCN_CNVTYPE_2BYTE2バイトのみ

変換対象バイト配列はoffset+size以上の大きさが必要です。
サーバのコードは、あらかじめsetCodeTypeで設定します。

戻り値 変換後の文字列
エラー VISConException:
JDKによるコード変換失敗(Encode指定誤り)
2バイトのみデータ時、変換前データサイズが奇数
関連項目 ありません。


3.2.1.17. ArrayToSendData


名称 ArrayToSendData - 入力されたdata(バイト配列)をoutBufferのoffset位置からsizeバイト分格納する
形式
 int ArrayToSendData(byte outBuffer[], int offset, byte data[], int size)
 throws VISConException
    
説明

入力されたdata(バイト配列)をoutBufferのoffset位置からsizeバイト分格納します。
dataの大きさがsizeバイトに満たない場合、0x00でパディングします。
実際に格納したデータの長さは戻り値で返却します。

outBuffer - データ格納域
offset - 格納開始位置
data - コピー対象データ
size - 格納サイズ

データ格納域はoffset+size以上確保する必要があります。

戻り値 変換後の長さ
エラー VISConException:コード変換失敗、データ格納領域が足りない
関連項目 ありません。


3.2.1.18. RecvDataToArray


名称 RecvDataToArray - 入力されたinBufferのoffset位置からsize分のデータを、outDataのバイト配列に格納する
形式
 int RecvDataToArray(byte inBuffer[], int offset, int size, byte outData[])
 throws VISConException
    
説明

入力されたinBufferのoffset位置からsize分のデータを、outDataのバイト配列に格納します。
outDataの大きさがsizeに満たない場合、残りデータを破棄します。

inBuffer - 対象バイト配列
offset - 変換開始位置
size - 変換サイズ
outData - 返却バイト配列

変換対象バイト配列はoffset+size以上の大きさが必要です。

戻り値 変換後の文字列
エラー VISConException:
コード変換失敗
変換対象データ領域が足りない
関連項目 ありません。


3.2.1.19. JIStoEK


名称 JIStoEK - 入力されたinBufferのoffset位置からsize分のデータを、JIS8コードからEBCDIKコードに変換し、outBufferのoutOffset位置から格納する
形式
 int JIStoEK(byte inBuffer[], int inOffset, byte outBuffer[],
             int outOffset, int size)
 throws VISConException
    
説明

入力されたinBufferのoffset位置からsize分のデータを、JIS8コードからEBCDIKコードに変換し、outBufferのoutOffset位置から格納します。

実際に格納したデータの長さは戻り値で返却します。

inBuffer - 変換対象バイト配列
inoffset - 変換開始位置
outBuffer - 変換対象格納バイト配列
outOffset - 変換対象格納開始位置
size - 変換サイズ

戻り値 変換後の長さ
エラー ありません。
関連項目 ありません。


3.2.1.20. EKtoJIS


名称 EKtoJIS - 入力されたinBufferのoffset位置からsize分のデータを、EBCDIKコードからJIS8コードに変換し、outBufferのoutOffset位置から格納する
形式
 int EKtoJIS(byte inBuffer[], int inOffset, byte outBuffer[],
             int outOffset, int size)
 throws VISConException
    
説明

入力されたinBufferのoffset位置からsize分のデータを、EBCDIKコードからJIS8コードに変換し、outBufferのoutOffset位置から格納します。

実際に格納したデータの長さは戻り値で返却します。

inBuffer - 変換対象バイト配列
inoffset - 変換開始位置
outBuffer - 変換対象格納バイト配列
outOffset - 変換対象格納開始位置
size - 変換サイズ

戻り値 変換後の長さ
エラー ありません。
関連項目 ありません。