JavaScript Unicode編碼和解碼
■知識(shí)點(diǎn)
escape()方法能夠把除ASCII之外的所有字符轉(zhuǎn)換為%xx或%uxxxx (x表示十六進(jìn)制的數(shù)字)的轉(zhuǎn)義序列。從\u000到\u00ff的Unicode字符由轉(zhuǎn)義序列%xx替代,其他所有Unicode字符由%uxxxx序列替代。unescape()方法能夠?qū)scape()編碼的字符串進(jìn)行解碼。
ECMAScriptv 3.0版本推薦使用 encodeURI()和 encodeURIComponent()方法代替 escape()方法,使用decodeURI()和 decodeURIComponent()方法代替 unescape()方法。
encodeURIComponent()與 encodeURI()方法不同。它們主要區(qū)別在于,encodeURIComponent()方法假定參數(shù)是URI的一部分,例如,協(xié)議、主機(jī)名、路徑或查詢字符串。因此,它將轉(zhuǎn)義用于分隔URI各個(gè)部分的標(biāo)點(diǎn)符號(hào),而encodeURIO方法僅把它們視為普通的ASCII字符,并沒有轉(zhuǎn)換。
■實(shí)例設(shè)計(jì)
【示例1】下面的代碼使用escapeO方法編碼字符串。
var s = "JavaScript 中國(guó)";
s = escape(s);
console.log (s) ; //返回字符串"JavaScript%u4E2D%u56FD"
可以使用該方法對(duì)Cookie字符串進(jìn)行編碼,避免與其他約定字符發(fā)生沖突,因?yàn)镃ookie包含的標(biāo) 點(diǎn)符號(hào)是有限制的。
【示例2】下面的代碼使用unescape()方法解碼被escape()方法編碼的字符串。
var s = "JavaScript 中國(guó)";
s = escape(s); //Unicode 編碼
console.log(s); //返回字符串"JavaScript%u4E2D%u56FD"
s = unescape(s); //Unicode 解碼
console.log(s); //返回字符串"JavaScript中國(guó)"
點(diǎn)擊加載更多評(píng)論>>