2021-07-30-🌦🌦 encodeURI与encodeURIComponent区别

语法

encodeURI(URI)

decodeURI(URI)

ex:

encodeURI("陈振飞")  //'%E9%99%88%E6%8C%AF%E9%A3%9E'
decodeURI('%E9%99%88%E6%8C%AF%E9%A3%9E') // 陈振飞
编码原因:

因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的

1.因为当字符串数据以url的形式传递给web服务器时,字符串中是不允许出现空格和特殊字符的
比如说 传递邮箱这个字符串的时候 hehe@163.com url中是不允许出现@字符的,转义之后会变成 hehe%40163.com

2.在标准的url规范中中文和很多的字符是不允许出现在url中的

encodeURI与encodeURIComponent区别

encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;
而encodeURIComponent则会对它发现的任何非标准字符进行编码。

ex:

var uri="http://www.jxbh.cn/illegal value.htm#start";
//”http://www.jxbh.cn/illegal%20value.htm#start”
alert(encodeURI (uri)):
//”http%3A%2F%2Fwww.jxbh.cn%2Fillegal%20value.htm%23start”
alert( encodaURIComponent (uri));

使用encodeURI()编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。
而encodeURIComponent()方法则会使用对应的编码替换所有非字母数字字符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容