public class URLRefDecoder
extends java.lang.Object
application/x-www-form-urlencoded
MIME format.
The conversion process is the reverse of that used by the URLEncoder class.
It is assumed that all characters in the encoded string are one of the
following: "a
" through "z
",
"A
" through "Z
", "0
"
through "9
", and "-
",
"_
", ".
", and "*
". The
character "%
" is allowed but is interpreted as the start of
a special escaped sequence.
The following rules are applied in the conversion:
a
" through
"z
", "A
" through "Z
"
and "0
" through "9
" remain the same.
.
", "-
",
"*
", and "_
" remain the same.
+
" is converted into a space character
" " .
%xy
" will be treated as
representing a byte where xy is the two-digit hexadecimal
representation of the 8 bits. Then, all substrings that contain one or more
of these byte sequences consecutively will be replaced by the character(s)
whose encoding would result in those consecutive bytes. The encoding scheme
used to decode these characters may be specified, or if unspecified, the
default encoding of the platform will be used.
There are two possible ways in which this decoder could deal with illegal
strings. It could either leave illegal characters alone or it could throw an
IllegalArgumentException
. Which approach the decoder takes
is left to the implementation.
Modifier and Type | Field and Description |
---|---|
static java.nio.charset.Charset |
DEFAULT_ENCODING
The default encoding
|
Constructor and Description |
---|
URLRefDecoder() |
Modifier and Type | Method and Description |
---|---|
static boolean |
decode(java.lang.Appendable out,
java.lang.CharSequence cs,
java.nio.charset.Charset charset)
Decodes an
application/x-www-form-urlencoded string using a
specific Charset. |
static java.lang.String |
decode(java.lang.CharSequence cs)
Decodes a
x-www-form-urlencoded string. |
static java.lang.String |
decode(java.lang.CharSequence cs,
java.nio.charset.Charset charset)
Decodes an
application/x-www-form-urlencoded string using a
specific Charset. |
static java.lang.String |
decode(java.lang.CharSequence cs,
java.lang.String enc)
Decodes an
application/x-www-form-urlencoded string using a
specific encoding scheme. |
public static java.nio.charset.Charset DEFAULT_ENCODING
public static boolean decode(java.lang.Appendable out, java.lang.CharSequence cs, java.nio.charset.Charset charset) throws java.io.IOException
application/x-www-form-urlencoded
string using a
specific Charset. The supplied
charset is used to determine what characters are represented by any
consecutive sequences of the form "%xy
".
Note: The World Wide Web Consortium Recommendation states that UTF-8 should be used. Not doing so may introduce incompatibilities.
out
- the output.cs
- the CharSequence
to decodecharset
- the given charsetjava.lang.NullPointerException
- if s
or charset
is
null
java.lang.IllegalArgumentException
- if the implementation encounters illegal
charactersjava.io.IOException
- If an I/O error occurs.URLEncoder#encode(java.lang.String, java.nio.charset.Charset)
public static java.lang.String decode(java.lang.CharSequence cs)
x-www-form-urlencoded
string. The UTF-8 encoding is used
to determine what characters are represented by any consecutive sequences
of the form "%xy
".s
- the CharSequence
to decodeString
public static java.lang.String decode(java.lang.CharSequence cs, java.nio.charset.Charset charset)
application/x-www-form-urlencoded
string using a
specific Charset. The supplied
charset is used to determine what characters are represented by any
consecutive sequences of the form "%xy
".
Note: The World Wide Web Consortium Recommendation states that UTF-8 should be used. Not doing so may introduce incompatibilities.
cs
- the CharSequence
to decodecharset
- the given charsetString
java.lang.NullPointerException
- if s
or charset
is
null
java.lang.IllegalArgumentException
- if the implementation encounters illegal
charactersURLEncoder#encode(java.lang.String, java.nio.charset.Charset)
public static java.lang.String decode(java.lang.CharSequence cs, java.lang.String enc) throws java.io.UnsupportedEncodingException
application/x-www-form-urlencoded
string using a
specific encoding scheme.
This method behaves the same as decode(String s, Charset charset) except that it will look up the charset using the given encoding name.
s
- the CharSequence
to decodeenc
- The name of a supported
character
encoding.String
java.io.UnsupportedEncodingException
- If character encoding needs to be
consulted, but named character
encoding is not supportedURLEncoder#encode(java.lang.String, java.lang.String)