URLEncoder和URLDecoder用于完成普通字符串和application/x-www-form-urlencoded MIME字符串之間的相互轉換.
HTML 格式編碼的使用工具類,該類包含了將String轉換為application/x-www-form-urlencoded MIME格式的靜態(tài)方法,有關HTML格式編碼的更多信息,請參閱HTML規(guī)范.
對String編碼時,使用以下規(guī)則:
- 字母數(shù)字字符:"a"到"z","A"到"Z",和"0"到"9"保持不變.
- 特殊字符:".","-","*"和"_"保持不變.
- 空格字符:" "轉換為一個 "+".
- 所有其他字符都是不安全的,因此首先使用一些編碼機制將他們轉換為一個或多個字節(jié),然后 每個字節(jié)用一個包含三個字符的字符串 "%xy"表示,其中xy為該字節(jié)的兩位十六進制表示形式,推薦的編碼機制是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的瀏覽器中,不同的瀏覽器的編碼和解碼規(guī)則是不一樣的
對于w3c瀏覽器:
遵循w3c組織規(guī)范的瀏覽器(非IE)
編碼:byte[] data = "大帥哥".getByte(String charsetName);
解碼:Sting str = new String(data,String charsetName);
對于IE瀏覽器:
編碼使用的application/x-www-form-urlencoded MIME機制