我們可以知道:escape()除了 ASCII 字母靠益、數(shù)字和特定的符號(hào)外,對(duì)傳進(jìn)來的字符串全部進(jìn)行轉(zhuǎn)義編碼残揉,因此如果想對(duì)URL編碼胧后,最好不要使用此方法。而encodeURI() 用于編碼整個(gè)URI,因?yàn)閁RI中的合法字符都不會(huì)被編碼轉(zhuǎn)換抱环。encodeURIComponent方法在編碼單個(gè)URIComponent(指請(qǐng)求參數(shù))應(yīng)當(dāng)是最常用的绩卤,它可以講參數(shù)中的中文、特殊字符進(jìn)行轉(zhuǎn)義江醇,而不會(huì)影響整個(gè)URL。
api | 詳解 |
---|---|
encodeURI() | 轉(zhuǎn)義一個(gè)URI中的字符 |
decodeURI() | 解碼一個(gè)URI中的字符 |
encodeURIComponent() | 轉(zhuǎn)義URI組件中的字符 |
decodeURIComponent() | 解碼一個(gè)URI組件中的字符 |
請(qǐng)注意 encodeURIComponent() 函數(shù) 與 encodeURI() 函數(shù)的區(qū)別之處何暇,前者假定它的參數(shù)是 URI 的一部分(比如協(xié)議陶夜、主機(jī)名、路徑或查詢字符串)裆站。因此 encodeURIComponent() 函數(shù)將轉(zhuǎn)義用于分隔 URI 各個(gè)部分的標(biāo)點(diǎn)符號(hào)条辟。
一、encodeURI() //轉(zhuǎn)義一個(gè)URI中的字符
語法:encodeURI(uri) //這個(gè)在編碼不同的AJAX請(qǐng)求時(shí)宏胯,解決中文亂碼問題經(jīng)常用到羽嫡。
var str1 = "你好javascript";
var str2 = encodeURI(str1);
document.write(str2); //輸出%E4%BD%A0%E5%A5%BDjavascript
二、decodeURI() //解碼一個(gè)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() //轉(zhuǎn)義URI組件中的字符
var str1 = "你好javascript";
var str2 = encodeURIComponent(str1);
document.write(str2); //輸出%E4%BD%A0%E5%A5%BDjavascript
四杭棵、decodeURIComponent() //解碼一個(gè)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() //編碼一個(gè)字符串
語法:escape(value);
var str = "javascript 你好";
var str1 = escape(str);
document.write(str1); //javascript%20%u4F60%u597D
六氛赐、unecape() //解碼一個(gè)由escape()函數(shù)編碼的字符串
window.onload = function () {
var str = "javascript 你好";
var str1 = escape(str);
document.write(str1); //javascript%20%u4F60%u597D
var str2 = unescape(str1);
alert(str2); //彈出 javascript你好
}