URL中包括中文或&等特殊字符的处理方法

从页面上往后台传递参数的方法有很多,有时为了方便我们会使用通过url来进行参数传递,特别是在要进行文件下载等操作时。

使用url进行参数传递时,如果参数的值不是ASCII字母或字符时,如果直接将这些字符拼进url中,你会发现在后台获取到的参数和你希望的不一样。这是我们就需要使用对url进行encode了。

需要encode的情况如下:
- 1. 参数中有中文字符等非ASCII字符
这种情况时,要使用js的encodeURI()对参数进行编码
- 2. 参数中含有?&等特殊字符
当url参数值中包括特殊字符时,如果你不对这些特殊字符进行处理,那边在后台接收到的数据就会出错。
这时再使用encodeURI()是无效的,因为:
1. encodeURI()不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ’ ( )。
2. encodeURI()的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

这种情况下的处理方法就是将这些特殊字符进行转义,将其替换为对应的URL编码。好在js库已经提供了对这些特殊字符处理的方法,我们直接调用encodeURIComponent()方法就行了。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值