付録H.4 文字コード種別設定関数
文字コード種別設定関数とは,表分割ハッシュ関数,及び空白変換関数に対して,UAPから文字コード種別を通知するために使用する関数です。
この関数で文字コードの種別を設定すると,表分割ハッシュ関数,及び空白変換関数など,文字コード種別に依存する処理が実行できます。
- 文字コード種別設定関数を使用する場合の前提条件
-
表分割ハッシュ関数と同じです。詳細については,「表分割ハッシュ関数を使用する場合の前提条件」を参照してください。
- 文字コード種別設定関数を使用したUAPの作成,実行
-
表分割ハッシュ関数と同じです。詳細については,「表分割ハッシュ関数を使用したUAPの作成,実行」を参照してください。
- 〈この項の構成〉
(1) 文字コード種別設定関数の詳細
(a) 記述構成
記述構成については,「記述構成」を参照してください。
(b) 文字コード種別設定関数p_rdb_set_lang
- 機能
-
表分割ハッシュ関数,及び空白変換関数が扱う文字コードの種別を設定します。
- ヘッダファイル
-
- #include<pdauxcnv.h>
-
文字コード種別設定関数を使用する場合に必ず指定します。
- 形式
int p_rdb_set_lang(char *lang);
- 引数
-
- lang(入力)
-
表分割ハッシュ関数,及び空白変換関数が扱う文字コードの種別を設定します。
この引数には,次の文字コードが指定できます。
文字コード種別
引数langの指定値
シフトJIS漢字コード※1
"SJIS"
EUC中国語漢字コード
"CHINESE"
単一バイト文字コード※2
"C"
Unicode(UTF-8)
"UTF8"
Unicode(IVS対応UTF-8)
"UTF8"
中国語漢字コード(GB18030)
"GB18030"
注※1 Linux,及びWindowsの場合に指定できます。
注※2 Windowsの場合に指定できます。
空の文字列を指定した場合(例:p_rdb_set_lang ("")),次のような動作となります。
-
UNIX環境の場合
この関数の前に実行したsetlocale関数で,LC_ALLカテゴリに設定したロケールに対応する文字コード種別が設定されます。setlocale関数を実行していない場合は,LC_ALLカテゴリのデフォルトのロケールに対応する文字コード種別が設定されます。
-
Windows環境の場合
OSのデフォルトとなる文字コード種別が設定されます。ただし,OSのデフォルトを上記の表以外の文字コード種別に設定している場合は,動作が保証されません。
-
- 戻り値
-
データ型:int
- p_rdb_RC_RTRN(0)
-
正常終了
- p_rdb_RC_ERRIVLG(-10)
-
文字コード種別不正
- 注意事項
-
-
p_rdb_set_langは,次のどれかに該当する場合,必ず実行してください。
・Windows環境のUAPで文字コード種別を設定するとき
・UNIX環境のUAPでp_rdb_conv_space_utf8を呼び出すとき※
・Linux環境のUAPで,文字コード種別をSJISに設定するとき
・UNIX環境のUAPで,文字コード種別をCHINESEに設定するとき
注※
p_rdb_conv_space_utf8を呼び出す前にp_rdb_set_langを実行してください。ただし,空白変換関数p_rdb_conv_spaceを呼び出す場合は,この関数ではなく,OS提供の関数setlocaleを使用してください。
-
UNIX環境の場合,この関数で文字コード種別を設定した後に,使用できない文字コード種別を使用して別の関数を使用するときは,p_rdb_set_lang("")を発行してから,setlocale関数を呼び出して適切な文字コード種別を設定し直す必要があります。
-