Interstage Application Server Smart Repositoryユーザーズガイド
目次 索引 前ページ次ページ

第1章 Smart Repositoryアプリケーション作成の基礎知識

1.5 特殊文字、マルチバイト文字の扱い

特殊文字を含むDNの指

 DNに特殊文字を指定するには、その特殊文字の前に“\”(エンマーク)を置いてエスケープするか、または“"”(ダブルクォーテーション)で囲む必要があります。
 エスケープが必要な特殊文字を以下に示します。

エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。

cn=a\b,o=Fujitsu, Inc.,c=jp

SDK(C API)の場合

 LDAP、C言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。

 “\”を含むcn属性を指定するとします。

a\b

 LDAPの規約により“\”をエスケープする必要があります。

cn=a\\b

 C言語の仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。

char *name1 = "cn=a\\\\b";

 同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。

char *name2 = "cn=a\\,b";
char *name3 = "cn=a\\\"b";

 最初の例をC言語で使用する場合は、次のように記述します。

char *name = "cn=a\\\\b,o=Fujitsu\\, Inc.,c=jp";

SDK(JNDI)の場合

 LDAP、JNDI、Java言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。

 “\”を含むcn属性を指定するとします。

a\b

 LDAPの規約により“\”をエスケープする必要があります。

cn=a\\b

 JNDIの仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。

cn=a\\\\b

 Java言語の仕様により、この名前を文字列リテラルとして指定するために、それぞれの“\”をエスケープする必要があります。

String name1 = "cn=a\\\\\\\\b";

 同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。

String name2 = "cn=a\\\\,b";
String name3 = "cn=a\\\\\"b";

 最初の例をJNDIで使用する場合は、次のように記述します。

String name = "cn=a\\\\\\\\b,o=Fujitsu\\\\, Inc.,c=jp";

日本語を含むDN、属性値の指

 SDKでは、DNおよび属性値に日本語を含む文字列を指定することができます。

SDK(C API)の場合

 UTF-8形式に変換するための関数を使用してUTF-8形式に変換する必要があります。
 詳細については、“リファレンスマニュアル(API編)”の“Smart Repositoryインタフェース”-“コード変換インタフェース”を参照してください。

SDK(JNDI)の場合

 特に意識する必要はありません。


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

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