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