This class provides methods to encode and decode URI References
in accordance with http://www.w3.org/TR/charmod/#sec-URIs .
The details of how the algorithms handle '%' are captured in
Convert a Unicode string, first to UTF-8 and then to
an RFC 2396 compliant URI with optional fragment identifier
using %NN escape mechanism as appropriate.
The '%' character is assumed to already indicated an escape byte.
The '%' character must be followed by two hexadecimal digits.
unicode - The uri, in characters specified by RFC 2396 + '#'
Convert a URI, in US-ASCII, with escaped characters taken from UTF-8,
to the corresponding Unicode string.
On ill-formed input the results are undefined, specifically if
the unescaped version is not a UTF-8 String, some String will be
Escaped '%' characters (i.e. "%25") are left unchanged.
uri - The uri, in characters specified by RFC 2396 + '#'.