Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


付録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)

文字コード種別不正

注意事項
  1. 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を使用してください。

  2. UNIX環境の場合,この関数で文字コード種別を設定した後に,使用できない文字コード種別を使用して別の関数を使用するときは,p_rdb_set_lang("")を発行してから,setlocale関数を呼び出して適切な文字コード種別を設定し直す必要があります。