Now I have correct SearchResults with correct names in them. But
JXplorer still shows "Auftr%c3%a4ge" instead of Aufträge, so I still
need a decodeValue method before searching. Looking at the wire protocol
with Ethereal, I see that everything is correctly transmitted in UTF-8,
so I suppose, it's a JXplorer issue.

Are there other issues known with UTF-8 characters and LDAP clients?


Sounds possible that you are running into a problem due to a DN being
expressed as part of an LDAP URL. The Sun JNDI client uses URLs in
search results if you do a search under a base and then get search
results with DNs which don't fall under this base (I have seen this
problem when I have bugs writing search results from a custom
partition). In particular one of these things need to be true:
   1. search results need to start with the base DN used for the search or
    2. search results need to have isRelative(true).

When neither of these two things is true the Sun JNDI client seems to
assume that the result must have resulted from a referral and a DN
like "name=fred, dc=acme" becomes "ldap://host:port//name=fred,
dc=acme" and URL encoding is applied to RDN value.

JX then tries to represent the LDAP URL in a sensible format an you
get extraneous % chars from the URL encoding.

Maybe this is what you are seeing.

Reply via email to