Interstage Application Server Smart Repository運用ガイド |
目次 索引 |
第5章 アプリケーションの作成(C API) | > 5.2 C API仕様 |
DNや属性値に日本語を含む文字列を指定することができます。本ライブラリでは、DNや属性値に日本語を含む文字列を指定する場合、UTF-8形式に変換する必要があります。本ライブラリでは、UTF-8形式に変換するために、以下の関数を提供しています。
日本語を含まない文字列(すべてのコードが0xFF以下)の場合は、UTF-8に変換しても、もとのデータと同じものが出力されます。
関数名 |
関数の説明 |
---|---|
日本語を含む文字列を変換規則に従ってコード変換します。 |
|
日本語を含む文字列を変換規則に従ってコード変換します。 |
|
ldap_conv_utf2()の初期化をします。 |
|
ldap_conv_utf2()の後処理をします。 |
この関数は、以下の変換規則に従ってコード変換を行います。
Unicode(UCS2)は、ビッグエンディアンとして処理します。
Unicode(UCS2)は、リトルエンディアンとして処理します。
【指定形式】
#include "idldap.h" int ldap_conv_utf( char *input, char **output, int in, int out ); |
【パラメタの説明】
入力データのアドレスを指定します。入力データの最後にはNULL文字“\0”が設定されていなければなりません。
出力データのアドレスを設定するための、ポインタ変数のアドレスを指定します。
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 → 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 | 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パラメタで指定されたポインタ変数に、出力データのアドレスが設定されています。
エラーの詳細は、Solaris OE、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 |
ライブラリのロードに失敗しました。 |
ldap_conv_utf()で通知された領域は、不要になった時点でldap_memfree()を使用して解放しなければなりません。詳細は、“動的メモリの解放”を参照してください。
この関数は、以下の変換規則に従ってコード変換を行います。
Unicode(UCS2)は、ビッグエンディアンとして処理します。
Unicode(UCS2)は、リトルエンディアンとして処理します。
また、この関数は、ldap_conv_utf()と同等の機能/性能をもち、Solaris OE版、およびLinux版ldap_conv_utf2()とのインタフェース互換を維持する目的で使用します。
また、この関数は、ldap_conv_utf()機能を分割することにより、性能向上を図っています。
【指定形式】
#include "idldap.h" int ldap_conv_utf2( ldap_conv_func *lcfp, char *input, char **output, int in, int out ); |
【パラメタの説明】
ldap_conv_init()で獲得されたコード変換ハンドルのアドレスを指定します。
入力データのアドレスを指定します。入力データの最後にはNULL文字“\0”が設定されていなければなりません。
出力データのアドレスを設定するための、ポインタ変数のアドレスを指定します。
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 → 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 | 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パラメタで指定されたポインタ変数に、出力データのアドレスが設定されています。
エラーの詳細は、Solaris OE、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 |
ライブラリのロードに失敗しました。 |
ldap_conv_utf2()で通知された領域は、不要になった時点でldap_memfree()を使用して解放しなければなりません。詳細は、“動的メモリの解放”を参照してください。
この関数は、ldap_conv_utf2()関数の初期化処理を行います。変換したい文字コードを指定することにより、UTF-8と指定した文字コード間での変換が可能となります。
Unicode(UCS2)は、ビッグエンディアンとして処理します。
Unicode(UCS2)は、リトルエンディアンとして処理します。
【指定形式】
#include "idldap.h" ldap_conv_func *ldap_conv_init( int code ); |
【パラメタの説明】
ldap_conv_utf2()で指定するinパラメタ、およびoutパラメタの、UTF-8でない方のコード種別を指定します。
【復帰値】
この関数は、復帰値として以下に示す値を返します。
Windows(R)版のこの関数は、Solaris OE版、およびLinux版と互換性を保つためにあります。そのため、必ず正常完了します。
エラーの詳細は、errnoを参照してください。
ldap_conv_init()で獲得されたコード変換ハンドルの領域は、不要になった時点でldap_conv_close()を使用して解放しなければなりません。
この関数は、ldap_conv_utf2()関数の後処理を行います。
【指定形式】
#include "idldap.h" int ldap_conv_close( ldap_conv_func *lcfp, int code ); |
【パラメタの説明】
ldap_conv_init()で獲得されたコード変換ハンドルのアドレスを指定します。
ldap_conv_init()で指定したコード種別を指定します。
【復帰値】
この関数は、復帰値として以下に示す値を返します。
Windows(R)版のこの関数は、Solaris OE版、およびLinux版との互換性だけのためにあります。そのため、必ず正常完了します。
エラーの詳細は、errnoを参照してください。
目次 索引 |