首頁 >Java >java教程 >關於Java中UrlDecoder與UrlEncoder的詳細介紹

關於Java中UrlDecoder與UrlEncoder的詳細介紹

黄舟
黄舟原創
2017-07-24 15:35:542300瀏覽

HTML 格式編碼的實用工具類別。該類別包含了將 String 轉換為 application/x-www-form-urlencoded MIME 格式的靜態方法。下文透過實例程式碼跟大家介紹Java中的UrlDecoder 和UrlEncoder知識,有興趣的朋友一起看看吧

一URLEncoder 


HTML 格式編碼的實用工具類別。該類別包含了將 String 轉換為 application/x-www-form-urlencoded MIME 格式的靜態方法。有關 HTML 格式編碼的更多信息,請參閱 HTML 規範。 對String 編碼時,使用下列規則: 

字母數字字元"a" 到"z"、"A" 到"Z" 和"0" 到"9" 保持不變。 

特殊字元 "."、"-"、"*" 和 "_" 不變。 

空格字元 " " 轉換為一個加號 "+"。 

所有其他字元都是不安全的,因此首先使用一些編碼機制將它們轉換為一個或多個位元組。然後每個位元組以一個包含 3 個字元的字串 "%xy" 表示,其中 xy 為該位元組的兩位十六進位表示形式。建議的編碼機制是 UTF-8。但是,出於相容性考慮,如果未指定一種編碼,則使用相應平台的預設編碼。

例如,使用UTF-8 編碼機制,字串"The string ü@foo-bar" 將轉換為"The+string+%C3%BC%40foo-bar",因為在UTF- 8 中,字元ü 編碼為兩個位元組,C3 (十六進位)和BC (十六進位),字元@ 編碼為一個位元組40 (十六進位)。 

二 URLDecoder 

該類別包含了將 String 從 application/x-www-form-urlencoded MIME 格式解碼的靜態方法。 

此轉換過程正好與 URLEncoder 類別所使用的過程相反。假定已編碼的字串中的所有字元為下列之一:"a" 到"z"、"A" 到"Z"、"0" 到"9" 和"-"、"_"、"."以及"*"。允許有 "%" 字符,但將它解釋為特殊轉義序列的開始。 

轉換中使用下列規則: 

字母數字字元 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不變。 

特殊字元 "."、"-"、"*" 和 "_" 不變。 

加號 "+" 轉換為空格字元 " "。 


將把 "%xy" 格式序列視為一個位元組,其中 xy 為 8 位元的兩位十六進位表示法。然後,所有連續包含一個或多個這些位元組序列的子字串,將被其編碼可產生這些連續位元組的字元所取代。可以指定對這些字元進行解碼的編碼機制,或者如果未指定的話,則使用平台的預設編碼機制。 

###此解碼器處理非法字串有兩種可能的方法。一種方法是不管該非法字符,另一種方法是拋出IllegalArgumentException 異常 ######簡單範例:######Java程式碼  #############
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(); 
    }
## #執行結果:######Java程式碼  ############
处理后:%E4%B8%AD%E5%9B%BD 
解码:中国

以上是關於Java中UrlDecoder與UrlEncoder的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn