URLEncoder和URLDecoder用于完成普通字符串和application/x-www-form-urlencoded MIME字符串之间的相互转换.
HTML 格式编码的使用工具类,该类包含了将String转换为application/x-www-form-urlencoded MIME格式的静态方法,有关HTML格式编码的更多信息,请参阅HTML规范.
对String编码时,使用以下规则:
- 字母数字字符:"a"到"z","A"到"Z",和"0"到"9"保持不变.
- 特殊字符:".","-","*"和"_"保持不变.
- 空格字符:" "转换为一个 "+".
- 所有其他字符都是不安全的,因此首先使用一些编码机制将他们转换为一个或多个字节,然后 每个字节用一个包含三个字符的字符串 "%xy"表示,其中xy为该字节的两位十六进制表示形式,推荐的编码机制是UTF-8,但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台默认的编码
示例代码
public static void main(String[] args) throws UnsupportedEncodingException {
String name = "小林 is a boy";
//编码 (%E5%B0%8F%E6%9E%97+is+a+boy)
String encoder = URLEncoder.encode(name, "UTF-8");
System.out.println(encoder);
//解码 (小林 is a boy)
String msg = URLDecoder.decode(encoder, "UTF-8");
System.out.println(msg);
}
注意:
在web的浏览器中,不同的浏览器的编码和解码规则是不一样的
对于w3c浏览器:
遵循w3c组织规范的浏览器(非IE)
编码:byte[] data = "大帅哥".getByte(String charsetName);
解码:Sting str = new String(data,String charsetName);
对于IE浏览器:
编码使用的application/x-www-form-urlencoded MIME机制