Javascript中的escape()方法是一種字符串編碼方法,用于將字符串轉(zhuǎn)化為可用于URL的格式。在實(shí)際的開(kāi)發(fā)中,我們經(jīng)常需要發(fā)送ajax請(qǐng)求到后臺(tái)獲取數(shù)據(jù),而后臺(tái)需要接收一些參數(shù)值。這些參數(shù)值可能包含中文、特殊字符等,如果不對(duì)其進(jìn)行編碼,可能會(huì)導(dǎo)致請(qǐng)求失敗或者數(shù)據(jù)讀取不正確。
下面是一個(gè)例子,獲取一個(gè)帶有特殊字符和中文的URL:
var url = 'http://example.com/?name=小明&age=18&address=上海%中山%區(qū)';
我們用console.log()打印出來(lái)這個(gè)url的結(jié)果:
http://example.com/?name=小明&age=18&address=上海%中山%區(qū)
可以看到,URL中包含有中文和特殊字符,如果直接發(fā)送請(qǐng)求,可能會(huì)導(dǎo)致請(qǐng)求失敗或者數(shù)據(jù)讀取不正確。此時(shí)我們就需要對(duì)URL進(jìn)行編碼,用escape()方法轉(zhuǎn)化為可用于URL的格式。
我們通過(guò)escape()方法對(duì)URL編碼:
var encodedURL = escape(url);
打印出來(lái)編碼后的url:
http%3A//example.com/%3Fname%3D%E5%B0%8F%E6%98%8E%26age%3D18%26address%3D%E4%B8%8A%E6%B5%B7%25%E4%B8%AD%E5%B1%B1%25%E5%8C%BA
可以看到,在編碼后的URL中,中文和特殊字符都被轉(zhuǎn)化為了%xx編碼形式,可以安全的發(fā)送到后臺(tái)進(jìn)行數(shù)據(jù)處理。
另外,需要注意的是,escape()方法不會(huì)編碼字母、數(shù)字、下劃線、連字符以及ASCII碼范圍內(nèi)的特殊字符等,比如a-z、A-Z、0-9、-、_等。
下面是一個(gè)例子:
var str = "Hello World!"; console.log(escape(str));
輸出結(jié)果為:
Hello%20World!
可以看到,只有空格被編碼為了%20,其他字符都沒(méi)有被編碼。
綜上所述,escape()方法是一種常用的字符串編碼方法,用于將字符串轉(zhuǎn)化為可用于URL的格式。在實(shí)際的開(kāi)發(fā)中,我們經(jīng)常需要對(duì)一些包含中文、特殊字符的URL進(jìn)行編碼,否則會(huì)導(dǎo)致請(qǐng)求失敗或者數(shù)據(jù)讀取不正確。