不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
escape、encodeURI、encodeURIComponent三个函数比较
编辑:dnawo 日期:2008-01-29
JavaScript中escape、encodeURI、encodeURIComponent三个函数都具有的编码的功能,并对应的定义了三个解码函数unescape、decodeURI、decodeURIComponent,它们有什么不同呢?综合书上讲的和网上搜索主要为以下三点:
1.编码格式:encodeURI和encodeURIComponent都是采用UTF-8,而escape是采用Unicode;
2.不编码的范围:三个函数都不对[a-z]、[A-Z]、[0-9]进行编码,除此之外,escape还不对"@*_+-.\"进行编码;encodeURI还不对"-_.!~*'();/?:@&=+$,#"进行编码;encodeURIComponent还不对"-_.!~*'()"进行编码,可见escape不编码的字符最少(69个),encodeURIComponent其次(71个),encodeURI最多(82个);
3.使用场合:如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape;如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
《JavaScript 权威指南》第四版中建议最好不要用escape而用encodeURIComponent或encodeURI,或许在js to js场合下应该这么做,但我好几次在js to asp/.net(UTF-8传参到GB2312)场合下都是用escape来解决问题的,你会发现它比encodeURIComponent或encodeURI简单得多,使用escape,asp/.net直接用request,不需要再进行其它编码转换工作!
1.编码格式:encodeURI和encodeURIComponent都是采用UTF-8,而escape是采用Unicode;
2.不编码的范围:三个函数都不对[a-z]、[A-Z]、[0-9]进行编码,除此之外,escape还不对"@*_+-.\"进行编码;encodeURI还不对"-_.!~*'();/?:@&=+$,#"进行编码;encodeURIComponent还不对"-_.!~*'()"进行编码,可见escape不编码的字符最少(69个),encodeURIComponent其次(71个),encodeURI最多(82个);
3.使用场合:如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape;如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
《JavaScript 权威指南》第四版中建议最好不要用escape而用encodeURIComponent或encodeURI,或许在js to js场合下应该这么做,但我好几次在js to asp/.net(UTF-8传参到GB2312)场合下都是用escape来解决问题的,你会发现它比encodeURIComponent或encodeURI简单得多,使用escape,asp/.net直接用request,不需要再进行其它编码转换工作!
评论: 0 | 引用: 0 | 查看次数: 3960
发表评论
请登录后再发表评论!