2.2. コード変換

「コード変換クラス」は、パラメータにSTRINGが指定された場合のコード変換を行うクラスです。

コード変換を行うには「コード変換クラス」のオブジェクトが必須です。


2.2.1. API概要

SetCodeType変換するコード種別を設定する
GetCodeType1変換するコード種別(クライアントコード)を取得する
GetCodeType2変換するコード種別(ホストコード)を取得する
SetJISType変換時に基本となるJIS年度種別を設定する
GetJISTypeJISTypeを取得する
SetKOCodeJIS変換時に使用するKOの値を設定する
GetKOCodeJIS変換時に使用するKOの値を取得する
SetInvコード変換時に不正コードが存在した場合の置き換え文字をJISコード体系で設定する
GetInvInvalidCodeを取得する
SetPad1PaddingCodeをJISコードの体系で設定する
GetPad11バイトPaddingCodeをJISコードの体系で取得する
SetPad2PaddingCodeをJISコードの体系で設定する
GetPad22バイトPaddingCodeをJISコードの体系で取得する
SetCodeInfoコード変換詳細情報を設定する
GetCodeInfoコード変換詳細情報を取得する
GetDtlErrCnvCodeの戻り値が、CONN_WARN/CONN_NGの場合のエラー詳細コードを取得する
GetCnvLenコード変換後のデータ長を取得する
CnvCode変換後データの右寄せ/左寄せ/空白パディングを行う

2.2.1.1. SetCodeType


名称 SetCodeType - 変換するコード種別を設定する
形式
 int SetCodeType(int CodeType1, int CodeType2)
    
説明

変換するコード種別を設定します。

CodeType1 - 変換コード1(ClientCode)
CONN_ASCIIASCIIコード(既定値)
CONN_JIS8JIS8コード
CONN_SJIS1バイトコード:JIS8コード
2バイトコード:シフトJISコード
CONN_UNIUNIコード
CodeType2 - 変換コード2(HostCode)
CONN_ASCIIASCIIコード(既定値)
CONN_EBCDICEBCDICコード
CONN_EBCDIKEBCDIKコード
CONN_EUC 1バイトコード:EUCコード
2バイトコード:EUCコード
CONN_IBM1バイトコード:EBCDIKコード
2バイトコード:IBM漢字コード
CONN_JIPSE1バイトコード:EBCDIKコード
2バイトコード:JIPS(E)コード
CONN_JIS1バイトコード:JIS8コード
2バイトコード:JISコード
CONN_SJIS1バイトコード:JIS8コード
2バイトコード:シフトJISコード
CONN_UNIUNIコード

戻り値
CONN_OK - 正常終了
CONN_NG - 不正な値/組み合わせエラー

(正しい組合わせ)

1.CodeType1:CONN_ASCII
CodeType2:CONN_ASCII、CONN_EBCDIC
2.CodeType1:CONN_JIS8
CodeType2:CONN_JIS8、CONN_EBCDIK
3.CodeType1:CONN_SJIS
CodeType2:CONN_SJIS、CONN_JIS、CONN_EUC、CONN_JIPSE、CONN_IBM
4.CodeType1:CONN_UNI
CodeType2:CONN_UNI、CONN_SJIS、CONN_JIS、CONN_EUC、CONN_JIPSE、CONN_IBM

CodeType1/CodeType2に同じ値が設定された場合は、無変換とします。

エラー 戻り値を確認してください。
関連項目 ありません。


2.2.1.2. GetCodeType1


名称 GetCodeType1 - 変換するコード種別を設定する
形式
 int GetCodeType1()
    
説明

変換するコード種別(クライアントコード)を取得します。

戻り値 変換コード1(ClientCode)
CONN_ASCIIASCIIコード(既定値)
CONN_JIS8JIS8コード
CONN_SJIS1バイトコード:JIS8コード
2バイトコード:シフトJISコード
CONN_UNI UNIコード
エラー ありません。
関連項目 ありません。


2.2.1.3. GetCodeType2

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

変換するコード種別(ホストコード)を取得します。

戻り値 変換コード2(HostCode)
CONN_ASCIIASCIIコード(既定値)
CONN_EBCDICEBCDICコード
CONN_EBCDIKEBCDIKコード
CONN_EUC1バイトコード:EUCコード
2バイトコード:EUCコード
CONN_IBM1バイトコード:EBCDIKコード
2バイトコード:IBM漢字コード
CONN_JIPSE1バイトコード:EBCDIKコード
2バイトコード:JIPS(E)コード
CONN_JIS1バイトコード:JIS8コード
2バイトコード:JISコード
CONN_SJIS1バイトコード:JIS8コード
2バイトコード:シフトJISコード
CONN_UNIUNIコード
エラー ありません。
関連項目 ありません。


2.2.1.4. SetJISType


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

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

JISType - JISで基本となるJIS年度種別
CONN_JIS78JISX0208-1978
CONN_JIPSJISX0208-1978ベース
CONN_JIS83JISX0208-1983
CONN_JIS90JISX0208-1990(既定値)
CONN_JIS90_0212JISX0212-1990

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

CONN_JIS78 JISX0208-1978
KI:0x1b2440 KO:0x1b2842
JISX 0208-1978/JISX 0208-1990の字体入替えを行います。
CONN_JIPS JISX0208-1978ベース
KI:0x1a70 KO:0x1a71
JISX 0208-1978/JISX 0208-1990の字体入替えを行います。G0/G1コードのマッピイングを行います。UnicodeのPrivateUserAreaとJIPSの84〜94区のマッピングを行います。
CONN_JIS83 JISX0208-1983
KI:0x1b2442 KO:0x1b2842
CONN_JIS90 JISX0208-1990(既定値)
KI:0x1b26401b2442 KO:0x1b2842
CONN_JIS90_0212 JISX0212-1990
KI:0x1b242844 KO:0x1b2842
なお、SetCodeTypeでCodeType2にJISを指定した場合のみ有効です。

CodeType2にCONN_EUCを指定した場合はCONN_JIS83、CONN_JIPSEを指定した場合はCONN_JIPS、CONN_IBMを指定した場合は、CONN_JIS83固定で変換を行います。

戻り値
CONN_OK - 正常終了
CONN_NG - 不正な値
エラー 戻り値を確認してください。
関連項目 ありません。


2.2.1.5. GetJISType


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

JISTypeを取得します。

戻り値 JISで基本となるJIS年度種別
CONN_JIS78JISX0208-1978
CONN_JIPSJISX0208-1978ベース
CONN_JIS83JISX0208-1983
CONN_JIS90JISX0208-1990(既定値)
CONN_JIS90_0212JISX0212-1990
エラー ありません。
関連項目 ありません。


2.2.1.6. SetKOCode


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

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

KOType - JISで基本となるJIS年度種別
CONN_KO_RMローマ字切り替え
CONN_KO_ASCASCII切り替え(既定値)

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

CONN_KO_RM ローマ字切り替え
KO:0x1b284a
CONN_KO_ASC ASCII切り替え
KO:0x1b2842
なお、SetKOCodeを使用しない場合、既定値は0x1b2842です。

戻り値
CONN_OK - 正常終了
CONN_NG - 不正な値
エラー 戻り値を確認してください。
関連項目 ありません。


2.2.1.7. GetKOCode


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

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

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

戻り値 JISで基本となるJIS年度種別
CONN_KO_RMローマ字切り替え
CONN_KO_ASCASCII切り替え(既定値)
CONN_KO_JIPSJIPSのKO
エラー ありません。
関連項目 ありません。


2.2.1.8. SetInv


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

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

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

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

戻り値 ありません。
エラー ありません。
関連項目 ありません。


2.2.1.9. GetInv


名称 GetInv - InvalidCodeを取得する
形式
 unsigned char * GetInv ()
    
説明

InvalidCodeを取得します。

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


2.2.1.10. SetPad1


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

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

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

SetPad1でPaddingCodeを指定しない場合は、空白パディングします。
CnvCodeでoptflgにCONN_ANK/CONN_MIXを指定した場合に、指定したPaddingコードを使用します。

戻り値 ありません。
エラー ありません。
関連項目 ありません。


2.2.1.11. GetPad1


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

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

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


2.2.1.12. SetPad2


名称 SetPad2 - PaddingCodeをJISコードの体系で設定する
形式
 void SetPad2 (const char *pad2) 
    
説明

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

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

SetPad2でPaddingCodeを指定しない場合は、空白パディングします。
CnvCodeでoptflgにCONN_JPを指定した場合に、指定したPaddingコードを使用します。

戻り値 ありません。
エラー ありません。
関連項目 ありません。


2.2.1.13. GetPad2


名称 GetPad2 - 2バイトPaddingCodeをJISコードの体系で取得する
形式
 unsigned char * GetPad2 ()
    
説明

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

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


2.2.1.14. SetCodeInfo


名称 SetCodeInfo - コード変換詳細情報を設定する
形式
 int SetCodeInfo (WOCnCdInfo Info) 
    
説明

コード変換詳細情報を設定します。

Info - コード変換詳細情報クラス
class WOCNCODE_API WOCnCdInfo
{
  public:
  int CodeType1;
  int CodeType2;
  int JISType;
  char Inv[2];
  char Pad1;
  char Pad2[2];
};
    

SetCodeType/SetJISType/SetInv/SetPad1/SetPad2を内部で呼び出し、一括設定します。

戻り値
CONN_OK - 正常終了
CONN_NG - 異常終了
エラー 戻り値を確認してください。
関連項目 ありません。


2.2.1.15. GetCodeInfo


名称 GetCodeInfo - コード変換詳細情報を取得する
形式
 void GetCodeInfo (WOCnCdInfo &Info) 
    
説明

コード変換詳細情報を取得します。

Info - コード変換詳細情報クラス
class WOCNCODE_API WOCnCdInfo
{
  public:
  int CodeType1;
  int CodeType2;
  int JISType;
  char Inv[2];
  char Pad1;
  char Pad2[2];
};
    

戻り値 ありません。
エラー ありません。
関連項目 ありません。


2.2.1.16. GetDtlErr


名称 GetDtlErr - CnvCodeの戻り値が、CONN_WARN/CONN_NGの場合のエラー詳細コードを取得する
形式
 int GetDtlErr ()  
    
説明

CnvCodeの戻り値が、CONN_WARN/CONN_NGの場合のエラー詳細コードを取得します。

戻り値 詳細エラーコード
エラー ありません。
関連項目 ありません。


2.2.1.17. GetCnvLen


名称 GetCnvLen - コード変換後のデータ長を取得する
形式
 int GetCnvLen ()
    
説明

コード変換後のデータ長を取得します。

この値は、Padding前の純粋なコード変換後のデータ長を返します。

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


2.2.1.18. CnvCode


名称 CnvCode - 変換後データの右寄せ/左寄せ/空白パディングを行う
形式
 int CnvCode(bool direction, const char *bfptr, int bflen, char *afptr,
             int aflen, int Alignment, unsigned char optflg)
    
説明

変換後データの右寄せ/左寄せ/空白パディングを行います。
指定されたコード変換種別で1バイトコードのみ、2バイトコードのみ、1バイト/2バイトコード混在のコード変換を行います。

direction - 変換方向
FORWARDCodeType1をCodeType2へ変換
BACKWARDCodeType2をCodeType1へ変換
*bfptr - 変換前データ格納域へのポインタ
bflen - データ変換サイズ
*afptr - 変換後データ格納域へのポインタ
aflen - 変換後データ格納可能サイズ
Alignment - Alignment
NONデータの終端にNULLを設定
RIGHTデータを右寄せにし、空白パディング
LEFTデータを左寄せにし、空白パディング(既定値)
optflg - オプションフラグ
ANKシングルバイト文字変換(既定値)
JPダブルバイト文字変換
MIXシングル/ダブルバイト文字混在変換

SetCodeTypeで指定されたCodeType1/CodeType2が同じ場合は、変換は行わず、Aligmentの値により、データの終端にNULL設定/右寄せ空白パディング/左寄せ空白パディングのみ行います。

#define NON 0 受信時使用
afptrにはNULL含めたデータサイズを用意すること
#define LEFT 1 送信時に使用
#define RIGHT 2 送信時に使用
なお、bfptrがNULLでbflenが0の場合、afptrがNULLでなく、かつaflenが0でない場合、パディング処理のみ行います。

戻り値
CONN_OK - 正常終了
CONN_NG - 異常終了
//メモリ不足(malloc失敗)
//2バイトのみデータ時、変換後データ格納領域サイズが奇数
CONN_WARN - 異常終了
//変換後データ格納領域不足
//不正コードあり
エラー 戻り値を確認してください。
関連項目 ありません。