Newbie and encoding

Jean-Philippe THIERRY jphthierry at free.fr
Mon Feb 19 21:02:22 CET 2007


On Mon, 19 Feb 2007 12:04:46 +0100
Michael Ströder <michael at stroeder.com> wrote:

> 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.
> 
Thanks to you (and Bjorn ;-)). It works far better now. Life would have been far easier if English was full of strange chars :-)

Jean-Philippe




More information about the python-ldap mailing list