博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
encodeuricomponent VS encodeuri
阅读量:6716 次
发布时间:2019-06-25

本文共 690 字,大约阅读时间需要 2 分钟。

之所以对url进行编码是因为有些字符有特殊的含义。

当URI被作为参数进行传输或排版或受到文字处理程序的处理时,重要的空格可能会消失并且可能引入无关紧要的空格。
在查询字符串中,&符号(&)用作键值对之间的分隔符。 如果将&符号放入其中一个值中,它看起来就像值的结尾和下一个键的开头之间的分隔符。
因此对于像这样的特殊字符,我们使用百分比编码,以便我们可以确保数据是明确编码的。
注意:而中文需要进行两次编码

encodeURIComponent

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。专属url的特殊字符,这些字符指的是除数字字母以外的字符,例如: // / & # 。如果某个url作为参数传给服务器,这时,服务器是无法识别的。这个时候,可以用encodeURIComponent方法对这个url进行编码。

encodeURI

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

注意

如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。也就是说,encodeURI对全角日韩汉字起作用。对URL中的特殊字符不做处理,encodeURIComponent()对url中的特殊字符做出来,将他们转化成对应的ASCII码

在小程序中的H5通过wx.navigateTo等函数把url作为参数时,就需要把url进行编码
附图
图片描述
参考:

转载地址:http://xoelo.baihongyu.com/

你可能感兴趣的文章
OpenStack从入门到放弃
查看>>
戴尔和EMC已经成为正式的竞争对手
查看>>
6425C-Lab12 管理DC(1)
查看>>
RocketMQ调研笔记
查看>>
maven 注册 jar
查看>>
高并发写入mysql的设计
查看>>
成长点滴:我不知道该说些什么?
查看>>
linux之使用man查看命令手册
查看>>
IT管理员如何保证你的内网安全?
查看>>
用U盘安装debian系统
查看>>
Mac 下得Jmeter 测试
查看>>
java基础之本地线程
查看>>
sqlserver2005 递归查询
查看>>
30天提升技术人的写作力-第十一天
查看>>
OSPF环境下帧中继的配置
查看>>
Python 17.4 使用Web框架
查看>>
马哥1-3
查看>>
spring容器
查看>>
Linux系统架构(LB-HA集群)-nginx负载均衡集群配置
查看>>
ios版塔防类游戏源码
查看>>