javascript之url轉義escape()、encodeURI()和decodeURI()


  我們可以知道:escape()除了 ASCII 字母、數字和特定的符號外,對傳進來的字符串全部進行轉義編碼,因此如果想對URL編碼,最好不要使用此方法。而encodeURI() 用於編碼整個URI,因為URI中的合法字符都不會被編碼轉換。encodeURIComponent方法在編碼單個URIComponent(指請求參數)應當是最常用的,它可以講參數中的中文、特殊字符進行轉義,而不會影響整個URL。

  請注意 encodeURIComponent() 函數 與 encodeURI() 函數的區別之處,前者假定它的參數是 URI 的一部分(比如協議、主機名、路徑或查詢字符串)。因此 encodeURIComponent() 函數將轉義用於分隔 URI 各個部分的標點符號。

一、encodeURI()  //轉義一個URI中的字符

  語法:encodeURI(uri)  //這個在編碼不同的AJAX請求時,解決中文亂碼問題經常用到。

        var str1 = "你好javascript";
        var str2 = encodeURI(str1);
        document.write(str2);   //輸出%E4%BD%A0%E5%A5%BDjavascript 

二、decodeURI()  //解碼一個URI中的字符

  語法:decodeURI(uri)

        var str1 = "你好javascript";
        var str2 = encodeURI(str1);
        document.write(str2);   //輸出%E4%BD%A0%E5%A5%BDjavascript
        var str3 = decodeURI(str2);
        document.write("<br/>" + str3)  //輸出    你好javascript

三、encodeURIComponent()  //轉義URI組件中的字符

        var str1 = "你好javascript";
        var str2 = encodeURIComponent(str1);
        document.write(str2);   //輸出%E4%BD%A0%E5%A5%BDjavascript

四、decodeURIComponent()  //解碼一個URI組件中的字符

        var str1 = "你好javascript";
        var str2 = encodeURIComponent(str1);
        document.write(str2);   //輸出%E4%BD%A0%E5%A5%BDjavascript
        var str3 = decodeURIComponent(str2);
        document.write("<br/>" + str3)  //輸出    你好javascript

 五、escape()  //編碼一個字符串

  語法:escape(value);

        var str = "javascript 你好";
        var str1 = escape(str);
        document.write(str1);  //javascript%20%u4F60%u597D

 六、unecape()  //解碼一個由escape()函數編碼的字符串

        window.onload = function () {
            var str = "javascript 你好";
            var str1 = escape(str);
            document.write(str1); //javascript%20%u4F60%u597D
            var str2 = unescape(str1);
            alert(str2);      //彈出 javascript你好
        }


免責聲明!

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



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