UrlDecoder 和 UrlEncoder
一 URLEncoder
HTML 格式編碼的實用工具類。該類包含了將 String 轉(zhuǎn)換為 application/x-www-form-urlencoded MIME 格式的靜態(tài)方法。有關(guān) HTML 格式編碼的更多信息,請參閱 HTML 規(guī)范。
對 String 編碼時,使用以下規(guī)則:
字母數(shù)字字符 \"a\" 到 \"z\"、\"A\" 到 \"Z\" 和 \"0\" 到 \"9\" 保持不變。 特殊字符 \".\"、\"-\"、\"*\" 和 \"_\" 保持不變。 空格字符 \" \" 轉(zhuǎn)換為一個加號 \"+\"。
所有其他字符都是不安全的,因此首先使用一些編碼機制將它們轉(zhuǎn)換為一個或多個字節(jié)。然后每個字節(jié)用一個包含 3 個字符的字符串 \"%xy\" 表示,其中 xy 為該字節(jié)的兩位十六進制表示形式。推薦的編碼機制是 UTF-8。但是,出于兼容性考慮,如果未指定一種編碼,則使用相應(yīng)平臺的默認編碼。
例如,使用 UTF-8 編碼機制,字符串 \"The string ü@foo-bar\" 將轉(zhuǎn)換為 \"The+string+%C3%BC%40foo-bar\",因為在 UTF-8 中,字符 ü 編碼為兩個字節(jié),C3 (十六進制)和 BC (十六進制),字符 @ 編碼為一個字節(jié) 40 (十六進制)。
二 URLDecoder
該類包含了將 String 從 application/x-www-form-urlencoded MIME 格式解碼的靜態(tài)方法。
該轉(zhuǎn)換過程正好與 URLEncoder 類使用的過程相反。假定已編碼的字符串中的所有字符為下列之一:\"a\" 到 \"z\"、\"A\" 到 \"Z\"、\"0\" 到 \"9\" 和 \"-\"、\"_\"、\".\" 以及 \"*\"。允許有 \"%\" 字符,但是將它解釋為特殊轉(zhuǎn)義序列的開始。 轉(zhuǎn)換中使用以下規(guī)則:
字母數(shù)字字符 \"a\" 到 \"z\"、\"A\" 到 \"Z\" 和 \"0\" 到 \"9\" 保持不變。 特殊字符 \".\"、\"-\"、\"*\" 和 \"_\" 保持不變。 加號 \"+\" 轉(zhuǎn)換為空格字符 \" \"。
將把 \"%xy\" 格式序列視為一個字節(jié),其中 xy 為 8 位的兩位十六進制表示形式。然后,所有連續(xù)包含一個或多個這些字節(jié)序列的子字符串,將被其編碼可生成這些連續(xù)字節(jié)的字符所代替??梢灾付▽@些字符進行解碼的編碼機制,或者如果未指定的話,則使用平臺的默認編碼機制。
該解碼器處理非法字符串有兩種可能的方法。一種方法是不管該非法字符,另一種方法是拋出 IllegalArgumentException 異常
簡單示例: Java代碼 1. 2. 3. 4. 5. 6. 7. 8. try { String encodeStr = URLEncoder.encode(\"中國\", \"utf-8\"); System.out.println(\"處理后:\" + encodeStr); String decodeStr = URLDecoder.decode(encodeStr, \"utf-8\"); System.out.println(\"解碼:\" + decodeStr); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); 1 / 2
9. 運行結(jié)果: Java代碼 1. 2. 處理后:%E4%B8%AD%E5%9B%BD 解碼:中國 } 本文作者:asflex
2 / 2
因篇幅問題不能全部顯示,請點此查看更多更全內(nèi)容
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2
違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)