今天作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