code: public static String unescapeIllegalJcrChars(String name)
     {
        StringBuilder buffer = new StringBuilder(name.length());
        int i = name.indexOf('%');
        while (i > -1 && i + 2 < name.length())
        {
           buffer.append(name.toCharArray(), 0, i);
           int a = Character.digit(name.charAt(i + 1), 16);
           int b = Character.digit(name.charAt(i + 2), 16);
           if (a > -1 && b > -1)
           {
              buffer.append((char)(a * 16 + b));
              name = name.substring(i + 3);
           }
           else
           {
              buffer.append('%');
              name = name.substring(i + 1);
           }
           i = name.indexOf('%');
        }
        buffer.append(name);
        return buffer.toString();
     }
docs: Unescapes previously escaped jcr chars. <br> Please note, that this does not exactly the same
  as the url related {@link #unescape(String)}, since it handles the byte-encoding differently.
  
  @param name
  the name to unescape
  @return the unescaped name