java.lang.Object
java.net.URLDecoder
用于HTML表单解码的实用工具类。该类包含用于解码字符串的静态方法,格式为
application/x-www-form-urlencoded
MIME格式。
转换过程与URLEncoder类使用的过程相反。假定编码字符串中的所有字符都是以下字符之一:"a
"到"z
", "A
"到"Z
", "0
"到"9
", "-
", "_
", ".
", 和 "*
"。字符"%
"是允许的,但被解释为特殊转义序列的开始。
转换中应用以下规则:
- 字母数字字符"
a
"到"z
", "A
"到"Z
"和"0
"到"9
"保持不变。 - 特殊字符"
.
", "-
", "*
", 和 "_
"保持不变。 - 加号"
+
"转换为空格字符" "。 - 形式为"
%xy
"的序列将被视为表示一个字节,其中xy是8位的两位十六进制表示。然后,包含一个或多个这些字节序列的子字符串将被替换为编码会导致这些连续字节的字符。用于解码这些字符的编码方案可以指定,或者如果未指定,则将使用默认字符集。
此解码器处理非法字符串的方式有两种可能。它可以保留非法字符,也可以抛出一个IllegalArgumentException
。解码器采取哪种方式取决于实现。
- 自 JDK 版本:
- 1.2
- 参见:
-
Method Summary
-
Method Details
-
decode
Deprecated.The resulting string may vary depending on the default charset. Instead, use the decode(String,String) method to specify the encoding.解码x-www-form-urlencoded
字符串。使用默认字符集确定形式为"%xy
"的任何连续序列表示的字符。- 参数:
-
s
- 要解码的String
- 返回:
-
新解码的
String
-
decode
使用特定编码方案解码application/x-www-form-urlencoded
字符串。此方法与decode(java.lang.String,java.nio.charset.Charset)相同,只是它将使用给定的编码名称查找字符集。
- 实现注意:
-
当遇到非法字符串时,此实现将抛出一个
IllegalArgumentException
。 - 参数:
-
s
- 要解码的String
-
enc
- 支持的字符编码的名称 - 返回:
-
新解码的
String
- 抛出:
-
UnsupportedEncodingException
- 如果需要咨询字符编码,但命名的字符编码不受支持 - 自 JDK 版本:
- 1.4
- 参见:
-
decode
使用特定Charset解码application/x-www-form-urlencoded
字符串。提供的字符集用于确定形式为"%xy
"的任何连续序列表示的字符。注意:根据 万维网联盟推荐,应使用UTF-8。否则可能会引入不兼容性。
- 实现注意:
-
当遇到非法字符串时,此实现将抛出一个
IllegalArgumentException
。 - 参数:
-
s
- 要解码的String
-
charset
- 给定的字符集 - 返回:
-
新解码的
String
- 抛出:
-
NullPointerException
- 如果s
或charset
为null
-
IllegalArgumentException
- 如果实现遇到非法字符 - 自 JDK 版本:
- 10
- 外部规范
- 参见:
-