[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: UNICODE in OpenLDAP 2.0.11

I believe there are functions included in OpenLDAP to do conversions
i.e. ldap_x_utf8s_to_wcs and ldap_x_wcs_to_utf8s in utf-8-conv.c in

-----Original Message-----
From: Adrian Trifu [mailto:Trifu@fzi.de]
Sent: Thursday, February 14, 2002 3:25 AM
To: eigil.bjorgum@felleskjopet.no; OpenLDAP-software@OpenLDAP.org
Subject: RE: UNICODE in OpenLDAP 2.0.11

Hi again!

Thank you for the quick reply.
My problem is I'm afraid a bit more basic:

How does OpenLDAP support UTF-8? Is it supposed to do any conversions on
its own?
For instance, the dn_normalize() function is TOUPPER()-ing the buffer a
char at a time... Doesn't that work ONLY for single-byte coded

I guess my problem can be stated as "How can I develop an OpenLDAP
backend in C/C++, under WinNT/2000, which works correctly with umlaut-ed
Just basic directions would be enough.

I looked into the list archives but I don't seem to be able to manage
alone. Also,time is pressing me.


> Hello.
> Adrian Trifu wrote:
> > Hi!
> > 
> > My problem is as follows:
> > I am developing a custom backend to a database and I 'm 
> having problems with german umlaut characters in that database.
> > But the problem starts right from the DN setting in 
> Outlook, where the CN contains one such special character. 
> The DN string has to be transmitted using UTF-8 (LDAP v3 
> requires this). 
> > Ok, the DN string arrives to the OpenLDAP server but I 
> don't know how to put it back together as WCHARs.
> > I have tried with MultiByteToWideChar() from Windows but it 
> doesn't come out right.
> > 
> > I do not have too much experience with UNICODE and UTF. Can 
> anybody help me?
> By using Perl, this will probably do the trick:
> use Net::LDAP;
> use Net::LDAP::Entry;
> use Unicode::String qw(utf8 latin1 utf16);
>  From utf8 to iso8859-1:
> $sn = utf8($entry->get_value('sn'))->latin1 if ($entry->exists('sn'));
>  From iso8859-1 to utf8:
> $entry->add(
>    'cn'          => latin1("$cn")->utf8,
>    'sn'          => latin1("$sn")->utf8,
>    'givenName'   => latin1("$gn")->utf8,
> );
> You can get the required modules from the CPAN archive;
> Good luck!