您的位置:首页 > Web前端 > JavaScript

javascript中escape(), encodeURI()和 encodeURIComponent()有什么异同

2014-04-19 16:15 447 查看
escape(), encodeURI()和 encodeURIComponent()有什么异同,它们分别适用于那种特定的情况呢?

escape方法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法,取而代之,你最好选择encodeURIComponent()方法。 escape()不编码的字符:@*/+相对于使用escape方法,使用encodeURI方法会显得更专业一些。当你需要编码一整个URI的时候,你可以使用此方法,因为URI中的合法字符都不会被编码转换。需要注意到是字符‟也是URI中的合法字符,所以也不会被编码转换。

encodeURI() 不编码的字符: ~!@#$&*()=:/,;?+''

encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的。需要注意到是字符‟也是URI中的合法字符,所以也不会被编码转换。 encodeURIComponent()不编码的字符: ~!*()''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐