您当前的位置首页/JavaScript/ 正文

encodeURI 和 encodeURIComponent的用法

admin 最后更新时间 2018-07-09 17:28:58   122浏览
这两个方法都是用于URI编码,但是有什么不一样? 一句话概括,如果只想对URI的非法字符进行编码,那么使用encodeURI,如果想对整个URI进行编码,那么使用encodeURIComponent ``` var url = 'http://www.jspapa.com/?from=bai du' encodeURI(url) "http://www.jspapa.com/?from=bai%20du" encodeURIComponent(url) "http%3A%2F%2Fwww.jspapa.com%2F%3Ffrom%3Dbai%20du" ``` 上面使用encodeURI对整个URL进行编码,结果只是对空格进行了编码,因为空格不是URI的合法字符,使用encodeURIComponent对整个URL进行编码,结果是整个URI都被编码了,包括斜杠,冒号。 现实中我们使用encodeURIComponent比较多,编码的一般都是参数内容,防止有非法字符。 我们很少有对整个URL进行编码的需要,除非要把整个URL当做参数进行传递。