public static void unescapeUriFragmentId(final char[] text, final int offset, final int len, final Writer writer)
            throws IOException {
        unescapeUriFragmentId(text, offset, len, writer, DEFAULT_ENCODING);
    }
public static void unescapeUriFragmentId ( final char [ ] text , final int offset , final int len , final Writer writer ) throws IOException { unescapeUriFragmentId ( text , offset , len , writer , DEFAULT_ENCODING ) ; }
<p>
Perform am URI fragment identifier <strong>unescape</strong> operation
on a <tt>char[]</tt> input using <tt>UTF-8</tt> as encoding.
</p>
<p>
This method will unescape every percent-encoded (<tt>%HH</tt>) sequences present in input,
even for those characters that do not need to be percent-encoded in this context (unreserved characters
can be percent-encoded even if/when this is not required, though it is not generally considered a
good practice).
</p>
<p>
This method will use <tt>UTF-8</tt> in order to determine the characters specified in the
percent-encoded byte sequences.
</p>
<p>
This method is <strong>thread-safe</strong>.
</p>

@param text the <tt>char[]</tt> to be unescaped.
@param offset the position in <tt>text</tt> at which the escape operation should start.
@param len the number of characters in <tt>text</tt> that should be escaped.
@param writer the <tt>java.io.Writer</tt> to which the unescaped result will be written. Nothing will
be written at all to this writer if input is <tt>null</tt>.
@throws IOException if an input/output exception occurs