die LDAP-Zeichenfolge unescape Sie folgenden Ausschnitt
// import javax.naming.ldap.Rdn;
String escapedValue = "M\\c3\\a4nager";
Object unescapedValue = Rdn.unescapeValue(escapedValue);
System.out.println("escapedValue = " + escapedValue);
System.out.println("unescapedValue = " + unescapedValue);
Ausgang
escapedValue = M\c3\a4nager
unescapedValue = Mänager
unescapedValue
enthält den String als UTF-8 verwenden könnte. Wenn Sie eine andere Kodierung benötigen, müssen Sie sie richtig handhaben.
Einfaches Beispiel, um den Unterschied in Bytes für verschiedene Kodierungen zu zeigen.
byte[] latinBytes = ((String)unescapedValue).getBytes(StandardCharsets.ISO_8859_1);
byte[] utf8Bytes = ((String)unescapedValue).getBytes(StandardCharsets.UTF_8);
System.out.println("latin1: " + Arrays.toString(latinBytes));
System.out.println("utf8 : " + Arrays.toString(utf8Bytes));
Ausgang
latin1: [77, -28, 110, 97, 103, 101, 114]
utf8 : [77, -61, -92, 110, 97, 103, 101, 114]
Seine normale Eingabe auf ein Verfahren – user3363047
Diese sind nicht Java Unicode-Codepoint-Darstellungen. – Mena
seine aUTF-8 Hex-Repräsentation, diese werden als Teil des Filters in LDAP verwendet – user3363047