ページの先頭行へ戻る
Interstage Charset ManagerStandard Edition V9 使用手引書 拡張データ変換機能編
FUJITSU Software

2.5.3 wconv_setrepchar

wconv_setrepcharについて説明します。

名前

wconv_setrepchar  -  未定義文字の置き換え文字を変更する

形式

int wconv_setrepchar( wconv_t         wd, 
                      int             fundef, 
                      unsigned char * charundefdb,
                      unsigned char * charundefsn );

wd wconv_open、またはwconv_openExが返却した変換情報テーブルの値を指定します。
fundef 未定義文字が出現した場合の動作を指定します。
charundefdb 未定義文字の2バイト代替文字を指定します。
charundefsn 未定義文字の1バイト代替文字を指定します。

機能説明

wconv_setrepcharは、文字コード変換時に未定義文字が出現したときの動作を指定します。fundefには、以下のいずれかを指定します。

[CONV_CONTINUE]:

デフォルトの置き換え文字のまま処理を継続します。

[CONV_STOP]:

未定義文字が出現した時点で項目の変換処理を中断します。

本動作が指定された場合は、wconv_convert関数は-1を返却します。

そのとき、【エラーコード】にはEBADE、【エラー原因】にはEILSEQが設定されます。

[CONV_CHANGE]:

未定義文字の置き換え文字を変更します。変換処理は継続します。

fundefにCONV_CHANGEが指定された場合、2バイト文字の置き換え文字をcharundefdbで指定された文字に変更し、1バイト文字の置き換え文字をcharundefsnで指定された文字に変更します。charundefdb、またはcharundefsnがNULLだった場合、0x00で置き換えます。デフォルトの置き換え文字にはなりません。

戻り値

カスタマイズに成功した場合は、0を返却します。

カスタマイズに失敗した場合は、-1を返却します。

エラー

エラー情報は、wconv_error ()で取得します。

【エラーコード】

EINVAL:

変換情報テーブルが異常です。または、fundefの値が不当です。

wconv_setrepchar関数の例

unsigned char msn[1] = { 0x5f };
unsigned char mdb[2] = { 0xff, 0x3f };
/* wconv_convert関数呼び出しまではwconv_open関数の例と同じ処理 */
wconv_setrepchar( wd, CONV_CHANGE, mdb, msn );
if ( ( wconv_convert( wd, &fromrecdata, &torecdata ) ) != 0x00 )
{
    wconv_error( wd, 1, &error );
}
wconv_close( wd );