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

本文详细对比了escape(), encodeURI() 和 encodeURIComponent() 三种URI编码方法的特点及适用场景。escape() 方法存在缺陷,不建议使用;encodeURI() 用于编码整个URI,保留了URI中的合法字符;encodeURIComponent() 专门用于编码URI的组成部分。
摘要由CSDN通过智能技术生成
escape(), encodeURI()和 encodeURIComponent()有什么异同,它们分别适用于那种特定的情况呢?    
escape方法并不编码字符+。而我们知道,在用户提交的表单字段中,如果有空格,则会被转化为+字符,而服务器解析的时候则会认为+号代表空格。由于这个缺陷,escape方法并不能正确地处理所有的非ASCII字符,你应当尽量避免使用escape方法,取而代之,你最好选择encodeURIComponent()方法。 escape()不编码的字符:@*/+相对于使用escape方法,使用encodeURI方法会显得更专业一些。当你需要编码一整个URI的时候,你可以使用此方法,因为URI中的合法字符都不会被编码转换。需要注意到是字符‟也是URI中的合法字符,所以也不会被编码转换。 
encodeURI() 不编码的字符: ~!@#$&*()=:/,;?+'' 
encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的。需要注意到是字符‟也是URI中的合法字符,所以也不会被编码转换。 encodeURIComponent()不编码的字符: ~!*()''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值