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には、以下のいずれかを指定します。
デフォルトの置き換え文字のまま処理を継続します。
未定義文字が出現した時点で項目の変換処理を中断します。
本動作が指定された場合は、wconv_convert関数は-1を返却します。
そのとき、【エラーコード】にはEBADE、【エラー原因】にはEILSEQが設定されます。
未定義文字の置き換え文字を変更します。変換処理は継続します。
fundefにCONV_CHANGEが指定された場合、2バイト文字の置き換え文字をcharundefdbで指定された文字に変更し、1バイト文字の置き換え文字をcharundefsnで指定された文字に変更します。charundefdb、またはcharundefsnがNULLだった場合、0x00で置き換えます。デフォルトの置き換え文字にはなりません。
戻り値
カスタマイズに成功した場合は、0を返却します。
カスタマイズに失敗した場合は、-1を返却します。
エラー
エラー情報は、wconv_error ()で取得します。
【エラーコード】
変換情報テーブルが異常です。または、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 );