(defun ldap-utf-8 (user pass base filter attribute)
(let ((ldap (trivial-ldap:new-ldap :user user
:pass pass
:base base)))
(trivial-ldap:bind ldap)
(unwind-protect
(when (trivial-ldap:search ldap filter)
(loop for res = (trivial-ldap:next-search-result ldap)
while res
do (return-from ldap-utf-8
(octets-to-string
(string-to-octets
(car (trivial-ldap:attr-value res attribute))
:external-format :8-bit)
:external-format :utf8))))
(trivial-ldap:unbind ldap))))
The arguments are self explanatory.
Monday, January 26, 2009
UTF-8 strings in trivial-ldap field values
Everybody using LDAP and Common Lisp probably knows the trivial-ldap library. It's a nifty, simple and concise implementation of the LDAP protocol in pure Common Lisp - i.e. no foreign library is needed to access your directory using this package.
Trivial-ldap documentation states that UTF-8 strings are not supported, although the non-ascii string attribute value is properly passed in trivial-ldap:entry slots. Here is how you can easily get UTF-8 string attribute in Allegro CL:
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment