| 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を参照してください。
			目次
			索引
			![]()  
		 |