如何正確的使用UrlDecoder與UrlEncoder?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
一 URLEncoder
HTML 格式編碼的實用工具類。該類包含了將 String 轉換為 application/x-www-form-urlencoded MIME 格式的靜態(tài)方法。有關 HTML 格式編碼的更多信息,請參閱 HTML 規(guī)范。
對 String 編碼時,使用以下規(guī)則:
字母數(shù)字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不變。
特殊字符 "."、"-"、"*" 和 "_" 保持不變。
空格字符 " " 轉換為一個加號 "+"。
所有其他字符都是不安全的,因此首先使用一些編碼機制將它們轉換為一個或多個字節(jié)。然后每個字節(jié)用一個包含 3 個字符的字符串 "%xy" 表示,其中 xy 為該字節(jié)的兩位十六進制表示形式。推薦的編碼機制是 UTF-8。但是,出于兼容性考慮,如果未指定一種編碼,則使用相應平臺的默認編碼。
例如,使用 UTF-8 編碼機制,字符串 "The string ü@foo-bar" 將轉換為 "The+string+%C3%BC%40foo-bar",因為在 UTF-8 中,字符 ü 編碼為兩個字節(jié),C3 (十六進制)和 BC (十六進制),字符 @ 編碼為一個字節(jié) 40 (十六進制)。
二 URLDecoder
該類包含了將 String 從 application/x-www-form-urlencoded MIME 格式解碼的靜態(tài)方法。
該轉換過程正好與 URLEncoder 類使用的過程相反。假定已編碼的字符串中的所有字符為下列之一:"a" 到 "z"、"A" 到 "Z"、"0" 到 "9" 和 "-"、"_"、"." 以及 "*"。允許有 "%" 字符,但是將它解釋為特殊轉義序列的開始。
轉換中使用以下規(guī)則:
字母數(shù)字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不變。
特殊字符 "."、"-"、"*" 和 "_" 保持不變。
加號 "+" 轉換為空格字符 " "。
將把 "%xy" 格式序列視為一個字節(jié),其中 xy 為 8 位的兩位十六進制表示形式。然后,所有連續(xù)包含一個或多個這些字節(jié)序列的子字符串,將被其編碼可生成這些連續(xù)字節(jié)的字符所代替??梢灾付▽@些字符進行解碼的編碼機制,或者如果未指定的話,則使用平臺的默認編碼機制。
該解碼器處理非法字符串有兩種可能的方法。一種方法是不管該非法字符,另一種方法是拋出 IllegalArgumentException 異常
簡單示例:
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(); }
看完上述內(nèi)容,你們掌握如何正確的使用UrlDecoder與UrlEncoder的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標題:如何正確的使用UrlDecoder與UrlEncoder-創(chuàng)新互聯(lián)
路徑分享:http://www.rwnh.cn/article44/jdcee.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、網(wǎng)頁設計公司、網(wǎng)站策劃、軟件開發(fā)、企業(yè)建站、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)