JavaScript Unicode编码和解码
■知识点
escape()方法能够把除ASCII之外的所有字符转换为%xx或%uxxxx (x表示十六进制的数字)的转义序列。从\u000到\u00ff的Unicode字符由转义序列%xx替代,其他所有Unicode字符由%uxxxx序列替代。unescape()方法能够对escape()编码的字符串进行解码。
ECMAScriptv 3.0版本推荐使用 encodeURI()和 encodeURIComponent()方法代替 escape()方法,使用decodeURI()和 decodeURIComponent()方法代替 unescape()方法。
encodeURIComponent()与 encodeURI()方法不同。它们主要区别在于,encodeURIComponent()方法假定参数是URI的一部分,例如,协议、主机名、路径或查询字符串。因此,它将转义用于分隔URI各个部分的标点符号,而encodeURIO方法仅把它们视为普通的ASCII字符,并没有转换。
■实例设计
【示例1】下面的代码使用escapeO方法编码字符串。
var s = "JavaScript 中国";
s = escape(s);
console.log (s) ; //返回字符串"JavaScript%u4E2D%u56FD"
可以使用该方法对Cookie字符串进行编码,避免与其他约定字符发生冲突,因为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中国"
点击加载更多评论>>