Seite 1 von 1

Ldap Umlaute

Verfasst: Donnerstag 25. Juni 2015, 13:35
von LukLuk
Heho zusammen,

ich habe eine Ldap-Datenbank und möchte nun Werte mit Umlaute draufschreiben.
Wenn ich dann die Add-Funktion aufrufe wird ein UnicodeEncodeError geworfen.

Code: Alles auswählen

Traceback (most recent call last):
  File "D:/Starkstrom/LdapRegistration/registration.py", line 94, in <module>
    addUser(attrs)
  File "D:/Starkstrom/LdapRegistration/registration.py", line 59, in addUser
    cn='cn='+encodeBase64(inputList['vorname'])+' '+encodeBase64(inputList['nachname'])
  File "D:/Starkstrom/LdapRegistration/registration.py", line 48, in encodeBase64
    return base64.encodestring(string)
  File "C:\Python27\lib\base64.py", line 315, in encodestring
    pieces.append(binascii.b2a_base64(chunk))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 1: ordinal not in range(128)
Wie kann ich die Daten nun umformen damit ich diese mit Umlaute in die Ldap-Datenbank schreiben kann?

Danke schoneinmal im vorraus.

Re: Ldap Umlaute

Verfasst: Donnerstag 25. Juni 2015, 14:44
von BlackJack
@LukLuk: Du musst die `unicode`-Zeichenketten in Bytezeichenketten (`str`) umkodieren. Dafür gibt es die `encode()`-Methode.

Re: Ldap Umlaute

Verfasst: Sonntag 28. Juni 2015, 13:00
von LukLuk
Hm das hat leider nix gebracht.
Ich hab jetzt einfach eine funktion geschrieben wo alle Umlaute mit der Ldap-Kodierung ersetzt und jetzt funktioniert es auch. Auserdem habe ich bemerkt das ich das nur bei der 'cn' brauch.

Aber danke für deine Hilfe.