Newbie and encoding

Michael Ströder michael at stroeder.com
Mon Feb 19 12:04:46 CET 2007


jphthierry at free.fr wrote:
> 
> I can not use 8 bits chars in search or add functions while I
> have no issue with these characters in Luma :-( It seems to be related to string
> encoding. Luma makes an intensive use of the "unicode" function. So I tried that
> piece of code but without success:
> 
>>>> import ldap
>>>> CON=ldap.open('localhost.localdomain')
>>>> CON.simple_bind_s('','')
>>>> CON.search_s('ou=amis,dc=localdomain',ldap.SCOPE_SUBTREE,u'(cn=th�*)')

You have to pass raw strings to python-ldap since the API does not
handle Unicode strings automatically.

So something like u'(cn=th�*)'.encode('utf-8').

Not sure what the � is in your e-mail though. Therefore I'd recommend
not to directly write 8-bit chars into the Python source code. Rather
use the escaping \x..

Complete example with my last name within Python shell and shell charset
being UTF-8.

Python 2.5 (r25:51908, Nov 27 2006, 19:14:46)
[GCC 4.1.2 20061115 (prerelease) (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> ustr=unicode('Ströder','utf-8')
>>> ustr
u'Str\xf6der'
>>> ustr.encode('utf-8')
'Str\xc3\xb6der'
>>>

Ciao, Michael.



More information about the python-ldap mailing list