Problems with function ldap.explode_dn()

OHURAMACRCUD at spammotel.com OHURAMACRCUD at spammotel.com
Mon Nov 24 19:39:32 CET 2003


Hello,

since changing to python 2.3.2, OpenLDAP 2.1.23 and python-ldap-2.0.0pre15
I have problems with explode_dn(), related to diacritics; as You can see:

Python 2.3.2 (#1, Oct 26 2003, 16:43:30)
[GCC 3.3.1] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import ldap
>>> dn="uid=ascii,l=München_iso-8859-1"
>>> ldap.explode_dn(dn)
['uid=ascii']
>>> ldap.explode_dn(dn.decode('latin'))
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/local/lib/python2.3/site-packages/ldap/functions.py", line 84, in explode_dn
    return _ldap_function_call(_ldap.explode_dn,dn,notypes)
  File "/usr/local/lib/python2.3/site-packages/ldap/__init__.py", line 62, in _ldap_function_call
    result = apply(func,args,kwargs)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 13: ordinal not in range(128)
>>> ldap.explode_dn(dn.decode('latin').encode('utf'))
['uid=ascii', 'l=M\\C3\\BCnchen_iso-8859-1']
>>> vgl=ldap.explode_dn(dn.decode('latin').encode('utf'))[1]
>>> vgl
'l=M\\C3\\BCnchen_iso-8859-1'
>>> vgl=="l=München_iso-8859-1".decode('latin').encode('utf8')
False

In the last working versions, I didn't need to encode or decode the strings.

Beeing very RFC-strict I would have to use utf-8 encoding. But the result
also should be utf-8 encoded, which isn't the case. Any ideas?


Kind Regards
Eckard






More information about the python-ldap mailing list