ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)

1.20.14 コード変換インタフェース

日本語サポート

  DNや属性値に日本語を含む文字列を指定することができます。本ライブラリでは、DNや属性値に日本語を含む文字列を指定する場合、UTF-8形式に変換する必要があります。本ライブラリでは、UTF-8形式に変換するために、以下の関数を提供しています。

  日本語を含まない文字列(すべてのコードが0xFF以下)の場合は、UTF-8に変換しても、もとのデータと同じものが出力されます。

関数名

関数の説明

ldap_conv_utf()

日本語を含む文字列を変換規則に従ってコード変換します。

ldap_conv_utf2()

日本語を含む文字列を変換規則に従ってコード変換します。

ldap_conv_init()

ldap_conv_utf2()の初期化をします。

ldap_conv_close()

ldap_conv_utf2()の後処理をします。

  未定義文字に対してコード変換をした場合、変換元コードに対応する変換先コードが存在しない場合は、変換先コードの"_"(アンダースコア)に変更します。(マルチバイトコードの場合は"_"になります。)

1.20.14.1 ldap_conv_utf()

名前

  ldap_conv_utf

形式

  #include "idldap.h"
  int  ldap_conv_utf(
          char  *input,
          char  **output,
          int  in,
          int  out );

機能説明

  この関数は、以下の変換規則に従ってコード変換をします。


  Unicode(UCS2)は、ビッグエンディアンとして処理します。


  Unicode(UCS2)は、リトルエンディアンとして処理します。

パラメタ

  input

  入力データのアドレスを指定します。

  output

  出力データのアドレスを設定するための、ポインタ変数のアドレスを指定します。

  in、out

  inには、入力データのコード種別を指定します。outには、出力データのコード種別を指定します。inパラメタとoutパラメタのどちらか一方は、UTF-8を指定する必要があります。

  コード変換の種類に応じて以下の値を指定します。

コード変換の種類

指定するパラメタ

in

out

Shift JIS → UTF-8

LDAP_CHARS_OPT_SJIS

LDAP_CHARS_OPT_UTF8

ISO-8859-1 → UTF-8

LDAP_CHARS_OPT_88591

LDAP_CHARS_OPT_UTF8

Unicode(UCS2) → UTF-8

LDAP_CHARS_OPT_UCS2

LDAP_CHARS_OPT_UTF8

UTF-8 → Shift JIS

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_SJIS

UTF-8 → ISO-8859-1

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_88591

UTF-8 → Unicode(UCS2)

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_UCS2

EUC → UTF-8

LDAP_CHARS_OPT_EUCJP

LDAP_CHARS_OPT_UTF8

UTF-8 → EUC

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_EUCJP

復帰値

  この関数は、復帰値として以下に示す値を返します。

  正常終了の場合には、outputパラメタで指定されたポインタ変数に、出力データのアドレスが設定されています。
  異常終了の場合には、outputパラメタで指定されたポインタ変数に、NULLが設定されています。エラーの詳細は、Solaris、Linuxではerrnoを参照してください。Windows(R)ではSystem Errorsを参照してください。Sytem ErrorsはGetLastError()で参照することができます。

System Errors

errno

意味

ERROR_INVALID_PARAMETER

EINVAL

パラメタの指定に誤りがあります。

ERROR_NOT_ENOUGH_MEMORY

ENOMEM

メモリ不足が発生しました。

ERROR_NO_UNICODE_TRANSLATION

EILSEQ

指定されたコードには不当な文字コードが含まれています。

ERROR_INSUFFICIENT_BUFFER

E2BIG

指定されたデータの形式が違います。

  -

ENOENT

ライブラリのロードに失敗しました。

注意事項

1.20.14.2 ldap_conv_utf2()

名前

  ldap_conv_utf2

形式

  #include "idldap.h"
  int  ldap_conv_utf2(
          ldap_conv_func  *lcfp,
          char  *input, 
          char  **output,
          int  in,
          int  out );

機能説明

  この関数は、以下の変換規則に従ってコード変換をします。


  Unicode(UCS2)は、ビッグエンディアンとして処理します。


  Unicode(UCS2)は、リトルエンディアンとして処理します。



  また、この関数は、ldap_conv_utf()と同等の機能/性能をもち、Solaris版、およびLinux版ldap_conv_utf2()とのインタフェース互換を維持する目的で使用します。


  また、この関数は、ldap_conv_utf()機能を分割することにより、性能向上を図っています。

パラメタ

  lcfp

  ldap_conv_init()で獲得されたコード変換ハンドルのアドレスを指定します。

  input

  入力データのアドレスを指定します。

  output

  出力データのアドレスを設定するための、ポインタ変数のアドレスを指定します。

  in、out

  inには、入力データのコード種別を指定します。outには、出力データのコード種別を指定します。inパラメタとoutパラメタのどちらか一方は、UTF-8を指定する必要があります。

  コード変換の種類に応じて以下の値を指定します。

コード変換の種類

指定するパラメタ

in

out

Shift JIS → UTF-8

LDAP_CHARS_OPT_SJIS

LDAP_CHARS_OPT_UTF8

ISO-8859-1 → UTF-8

LDAP_CHARS_OPT_88591

LDAP_CHARS_OPT_UTF8

Unicode(UCS2) → UTF-8

LDAP_CHARS_OPT_UCS2

LDAP_CHARS_OPT_UTF8

UTF-8 → Shift JIS

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_SJIS

UTF-8 → ISO-8859-1

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_88591

UTF-8 → Unicode(UCS2)

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_UCS2

EUC → UTF-8

LDAP_CHARS_OPT_EUCJP

LDAP_CHARS_OPT_UTF8

UTF-8 → EUC

LDAP_CHARS_OPT_UTF8

LDAP_CHARS_OPT_EUCJP

復帰値

  この関数は、復帰値として以下に示す値を返します。

  正常終了の場合には、outputパラメタで指定されたポインタ変数に、出力データのアドレスが設定されています。
  異常終了の場合には、outputパラメタで指定されたポインタ変数に、NULLが設定されています。エラーの詳細は、Solaris、Linuxではerrnoを参照してください。Windows(R)ではSystem Errorsを参照してください。System ErrorsはGetLastError()で参照することができます。

System Errors

errno

意味

ERROR_INVALID_PARAMETER

EINVAL

パラメタの指定に誤りがあります。

ERROR_NOT_ENOUGH_MEMORY

ENOMEM

メモリ不足が発生しました。

ERROR_NO_UNICODE_TRANSLATION

EILSEQ

指定されたコードには不当な文字コードが含まれています。

ERROR_INSUFFICIENT_BUFFER

E2BIG

指定されたデータの形式が違います。

  -

ENOENT

ライブラリのロードに失敗しました。

注意事項

1.20.14.3 ldap_conv_init()

名前

  ldap_conv_init

形式

  #include "idldap.h"
  ldap_conv_func  *ldap_conv_init(
          int  code );

機能説明

  この関数は、ldap_conv_utf2()関数の初期化処理をします。変換したい文字コードを指定することにより、UTF-8と指定した文字コードとの間で変換ができるようになります。


  Unicode(UCS2)は、ビッグエンディアンとして処理します。


  Unicode(UCS2)は、リトルエンディアンとして処理します。

パラメタ

  code

  ldap_conv_utf2()で指定するinパラメタ、およびoutパラメタの、UTF-8でない方のコード種別を指定します。

  • LDAP_CHARS_OPT_SJIS : Shift JIS

  • LDAP_CHARS_OPT_88591 : ISO-8859-1

  • LDAP_CHARS_OPT_UCS2 : Unicode(UCS2)

  • LDAP_CHARS_OPT_EUCJP : EUC

復帰値

  この関数は、復帰値として以下に示す値を返します。

  Windows(R)版のこの関数は、Solaris版、およびLinux版と互換性を保つためにあります。そのため、必ず正常終了します。

  エラーの詳細は、errnoを参照してください。

errno

意味

EINVAL

パラメタの指定に誤りがあります。

ENOMEM

メモリ不足が発生しました。

ENOENT

ライブラリのロードに失敗しました。

注意事項

1.20.14.4 ldap_conv_close()

名前

  ldap_conv_close

形式

  #include "idldap.h"
  int  ldap_conv_close(
          ldap_conv_func  *lcfp,
          int  arg );

機能説明

  この関数は、ldap_conv_utf2()関数の後処理をします。

パラメタ

  lcfp

  ldap_conv_init()で獲得されたコード変換ハンドルのアドレスを指定します。

  arg

  ldap_conv_init()で指定したコード種別を指定します。(将来の拡張用のため本バージョンでは有効になりません。)

復帰値

  この関数は、復帰値として以下に示す値を返します。

  Windows(R)版のこの関数は、Solaris版、およびLinux版との互換のためだけにあります。そのため、必ず正常終了します。

  エラーの詳細は、errnoを参照してください。

errno

意味

EINVAL

パラメタの指定に誤りがあります。

EBADF

コード変換ハンドルが正しくありません。