public class Encode
extends java.lang.Object
HTML 格式编码的实用工具类。该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法。有关 HTML 格式编码的更多信息,请参阅 HTML 规范。
对 String 编码时,使用以下规则:
a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不变。
."、"-"、"*" 和 "_" 保持不变。
" 转换为一个加号 "+"。
%xy" 表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。
例如,使用 UTF-8 编码机制,字符串 "The string ü@foo-bar" 将转换为 "The+string+%C3%BC%40foo-bar",因为在 UTF-8 中,字符 ü 编码为两个字节,C3 (十六进制)和 BC (十六进制),字符 @ 编码为一个字节 40 (十六进制)。
二、格式解码decode方法
HTML 格式解码的实用工具类。该类包含了将 String 从 application/x-www-form-urlencoded MIME 格式解码的静态方法。
该转换过程正好与 URLEncoder 类使用的过程相反。假定已编码的字符串中的所有字符为下列之一:"a" 到 "z"、"A" 到 "Z"、"0" 到 "9" 和 "-"、"_"、"." 以及 "*"。允许有 "%" 字符,但是将它解释为特殊转义序列的开始。
转换中使用以下规则:
a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不变。
."、"-"、"*" 和 "_" 保持不变。
+" 转换为空格字符 " "。
%xy" 格式序列视为一个字节,其中 xy 为 8 位的两位十六进制表示形式。然后,所有连续包含一个或多个这些字节序列的子字符串,将被其编码可生成这些连续字节的字符所代替。可以指定对这些字符进行解码的编码机制,或者如果未指定的话,则使用平台的默认编码机制。
该解码器处理非法字符串有两种可能的方法。一种方法是不管该非法字符,另一种方法是抛出 IllegalArgumentException 异常。解码器具体采用哪种方法取决于实现。
| 限定符和类型 | 字段和说明 |
|---|---|
static java.lang.String |
ASCII |
static java.lang.String |
GB2312 |
static java.lang.String |
GBK |
static java.lang.String |
Unicode |
static java.lang.String |
UTF8 |
| 构造器和说明 |
|---|
Encode() |
| 限定符和类型 | 方法和说明 |
|---|---|
static java.lang.String |
decode(java.lang.String s)
使用UTF-8编码机制对 application/x-www-form-urlencoded 字符串解码。
|
static java.lang.String |
decode(java.lang.String s,
java.lang.String enc)
使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。
|
static java.lang.String |
encode(java.lang.String s)
使用UTF-8编码机制将字符串转换为 application/x-www-form-urlencoded 格式。
|
static java.lang.String |
encode(java.lang.String s,
java.lang.String enc)
使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。
|
public static final java.lang.String UTF8
public static final java.lang.String Unicode
public static final java.lang.String ASCII
public static final java.lang.String GBK
public static final java.lang.String GB2312
public static final java.lang.String encode(java.lang.String s)
s - - 要转换的 String。public static java.lang.String encode(java.lang.String s,
java.lang.String enc)
s - - 要转换的 String。enc - - 所支持的字符编码名称。public static final java.lang.String decode(java.lang.String s)
s - - 要解码的 Stringpublic static java.lang.String decode(java.lang.String s,
java.lang.String enc)
s - - 要解码的 Stringenc - - 所支持的字符编码的名称。