为什么要用encodeURIComponent()代替escape()

最近研究了下字符转码,在 《JavaScript 权威指南》 中说最好不要用 escape() 而用 encodeURIComponent() 或者 encodeURI() ,在 MSDN 上也这么说,(强劲BS一下《JavaScript 权威指南》都说 encodeURIComponent() 比 escape() 好了,可是例子中老喜欢用 escape() ,误人子弟啊~)可是为什么呢,都说的不清楚…

我上网找啊找啊,发现大家也不太了解,又看了看书,书上说 escape() 对 u0000 到 u0070 进行转码, encodeURIComponent() 对 u0080 到 u00FF 进行转码,那么是不是 escape() 只对 ASCII 的 (代码 0-127) 进行转码而不对 (代码 128-255) 进行转码, 那么 encodeURIComponent() 才是我们想要的转码内容,escape() 他转码转的好象都是可不转的码。。。 ,然后经实验的确如此。。。

上面说错了,本质原因是 escape() 只是为 ASCII字符 做转换工作,转换成的 %unnnn 这样的码,如果要用更多的字符如 UTF-8字符库 就一定要用 encodeURIComponent() 或 encodeURI() 转换才可以成 %nn%nn 这的码才可以,就这么简单,多与少的问题,HOHO~

所以所以,为了全球的统一化进程,在用 encodeURIComponent() 或 encodeURI() 代替 escape() 使用吧,挖哈哈哈哈哈哈哈~~~
http://www.misuisui.com/weblog/?p=418

加支付宝好友偷能量挖...


评论(0)网络
阅读(146)喜欢(0)JavaScript/Ajax开发技巧