Interstage Application Server Smart Repository運用ガイド
目次 索引 前ページ次ページ

第5章 アプリケーションの作成(C API)> 5.2 C API仕様

5.2.13 エンコード/デコード処理

日本語サポー

 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()の後処理をします。

 

ldap_conv_utf

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


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


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

【指定形式】

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

【パラメタの説明】

【復帰値】

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

 正常完了の場合には、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

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


 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 );

【パラメタの説明】

【復帰値】

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

 正常完了の場合には、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_init

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


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


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

【指定形式】

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

【パラメタの説明】

【復帰値】

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

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

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

ldap_conv_close

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

【指定形式】

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

【パラメタの説明】

【復帰値】

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

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

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


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005