Ldap Umlaute

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
LukLuk
User
Beiträge: 11
Registriert: Montag 22. Juni 2015, 14:36

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.
BlackJack

@LukLuk: Du musst die `unicode`-Zeichenketten in Bytezeichenketten (`str`) umkodieren. Dafür gibt es die `encode()`-Methode.
LukLuk
User
Beiträge: 11
Registriert: Montag 22. Juni 2015, 14:36

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.
Antworten