tblinker
Goto Top

Falsche Zeichensatz bei LDAP Abfrage, Umlaute werden verstümmelt

Hallo!

Ich habe ein Script gefunden, um Nutzer aus einem Active Directory in eine Forensoftware zu übernehmen. Das php-Skipt fragt per LDAP die Benutzernamen und Kennwörter im AD ab. Das klappt auch soweit wunderbar, lediglich bei Nutzern mit Umlauten erhalte ich "kryptische" Zeichen anstelle der Umlaute zurück ("ü" ).

Das deutet ja auf irgendein Problem mit den verwendeten Zeichensätzen hin. Habt ihr eine Idee, wie ich das beheben kann? Wo finde ich die aktuellen Zeichensätze, mit denen die Abfragen durchgeführt werden?


Vielen Dank

Content-ID: 115975

Url: https://administrator.de/forum/falsche-zeichensatz-bei-ldap-abfrage-umlaute-werden-verstuemmelt-115975.html

Ausgedruckt am: 23.12.2024 um 12:12 Uhr

RoterFruchtZwerg
RoterFruchtZwerg 13.05.2009 um 14:34:29 Uhr
Goto Top
du gibst den Zeichensatz vor... Wenn der Name im PHP Skript steht, kommt es drauf an, wie du das Skript abgespeichert hast. Wenn er in einer Datenbank steht, kommt es darauf an, mit welchem Zeichensatz die Datenbank kommuniziert. Wenn er über eine Website angegeben wird, kommt es darauf an, mit welchem Zeichensatz das HTML Dokument codiert ist.

Letztendlich kann es auch sein, dass das Skript keine "falschen" Daten ausgibt, sondern du sie nur im falschen Zeichensatz interpretierst.
Schonmal geschaut, wie das Skript die Daten zurück gibt? Vielleicht verwendet es ja absichtlich utf-8 und du interpretierst es also iso-8859-15?
TBlinker
TBlinker 13.05.2009 um 15:45:22 Uhr
Goto Top
Das Ergebnis der LDAP Anfrage wird in eine Datenbank geschrieben und taucht dort mit "ü" auf. Das Feld hat den Standard-Zeichensatz "latin1_swedish_ci". Auch wenn ich das auf "utf8_general_ci" ändere, werden die Daten nicht richtig eingefügt.

Das legt die Vermutung nahe, dass die Daten schon falsch in der Datenbank ankommen, oder?
RoterFruchtZwerg
RoterFruchtZwerg 13.05.2009 um 15:54:09 Uhr
Goto Top
Naja, du kannst sie als iso-8859-1 abspeichern, indem du die Benutzernamen die das Skript zurück gibt mit utf8_decode() in iso-8859-1 wandelst.
TBlinker
TBlinker 14.05.2009 um 10:59:28 Uhr
Goto Top
Ja, so hab ichs jetzt auch gemacht. Funktioniert auch prima.


Dank dir !