今天作LDAP发布图片,用binary属性存储。存储没有问题,可是读取时发现字段变成String形式而且内容是乱码,怎么转换都不能解决。java
最后度了下发现数组
默认状况下Attribute#get()返回的属性值的格式都是字符串类型的,若是想指定某属性的格式为字节数组类型(好比某属性可能在活动目录中存储的是图片、Word等二进制文件,那么返回字节数组类型会特别合适),须要事先在查找的上下文环境中指定:默认状况下Attribute#get()返回的属性值的格式都是字符串类型的,若是想指定某属性的格式为字节数组类型(好比某属性可能在活动目录中存储的是图片、Word等二进制文件,那么返回字节数组类型会特别合适),须要事先在查找的上下文环境中指定:服务器
增长如 env.put("java.naming.ldap.attributes.binary","aaaa");//aa是你的binary字段名。ui
Context cxt = new InitialLdapContext(env,null)编码
另外:spa
还有一个小问题,若是链接Ldap服务器的PROVIDER_URL中服务器与端口以外的路径含有中文,则须要事先使用java.net.URLEncoder进行编码,例如:.net
参考:code