Реализуйте метод unescape()
самостоятельно.
В Java 11+ вы можете сделать это следующим образом:
public static String unescape(String s) {
return Pattern.compile("%u([0-9A-Fa-f]{4})|%([0-9A-Fa-f]{2})").matcher(s).replaceAll(m ->
Character.toString(Integer.parseInt(m.group(m.start(1) != -1 ? 1 : 2), 16)));
}
В более ранних версиях Java используйте:
public static String unescape(String s) {
StringBuffer buf = new StringBuffer();
Matcher m = Pattern.compile("%u([0-9A-Fa-f]{4})|%([0-9A-Fa-f]{2})").matcher(s);
while (m.find())
m.appendReplacement(buf, new String(new int[] { Integer.parseInt(m.group(m.start(1) != -1 ? 1 : 2), 16) }, 0, 1));
return m.appendTail(buf).toString();
}
Тест
String cadena = "%u0032%u0038";
System.out.println(unescape(cadena));
Выход
28