JS 和 Java 中URL特殊字符編碼方式


  前幾天遇到url特殊字符編碼的問題,在這里整理一下:

 

  JavaScript

  1.  編碼 escape(String)

    其中某些字符被替換成了十六進制的轉義序列。

   

   解碼 unescape(String)

    該函數的工作原理是這樣的:通過找到形式為 %xx 和 %uxxxx 的字符序列(x 表示十六進制的數字),用 Unicode 字符 \u00xx 和 \uxxxx 替換這樣的字符序列進行解碼。

    *注釋:ECMAScript v3 反對使用該方法,應用使用 decodeURI() 和 decodeURIComponent() 替代它。

 

  2. 編碼 encodeURI(URIstring)

    返回值:URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。

    *如果 URI 組件中含有分隔符,比如 ? 和 #,則應當使用 encodeURIComponent() 方法分別對各組件進行編碼。

 

   解碼 decodeURI(URIstring)

    返回值:URIstring 的副本,其中的十六進制轉義序列將被它們表示的字符替換。

 

  3. 編碼 encodeURIComponent(URIstring)

    返回值:URIstring 的副本,其中的某些字符將被十六進制的轉義序列進行替換。

 

   解碼 decodeURIComponent(URIstring)

    返回值:URIstring 的副本,其中的十六進制轉義序列將被它們表示的字符替換。

 
 

  *encodeURIcomponent() 與 encodeURI() 區別

    encodeURIComponent(URIstring) : 假定其參數是URI一部分(比如協議、主機名、路徑或查詢字符串),因此 encodeURIComponent() 函數將轉義用於分隔 URI 各個部分的標點符號(? # 等)。

    encodeURI(URIstring) : 不會對URI中的分隔符編碼,如 ? # 等。

 

 

  Java

    編碼: Class URLEncoder 

 

    static String encode(String s);
    static String encode(String s, String enc);//enc 編碼方式 推薦使用UTF-8

 

 

 

 

    解碼: Class URLDecoder

    static String decode(String s);
    static String decode(String s, String enc);//enc 編碼方式 推薦使用UTF-8

 

     * Java中的編碼解碼方式和JS中的encodeURIComponent()/decodeURIComponent()方法是前后台通用的;兩者在處理字符串的方式是沒有區別的;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM