佛山做网站需要多少钱,绍兴高端网站开发,购物网站建设需求模板下载,百度seo有用吗区别#xff1a;
encodeURIComponent()对/?:$,#进行编码#xff0c;encodeURI()不会
如果url的query和path传参中含有这些字符会被不正确的截断#xff0c;拿到的参数会是错误的#xff0c;一般都会用encodeURIComponent()进行编码、decodeURIComponent进行解码 en…区别
encodeURIComponent()对/?:$,#进行编码encodeURI()不会
如果url的query和path传参中含有这些字符会被不正确的截断拿到的参数会是错误的一般都会用encodeURIComponent()进行编码、decodeURIComponent进行解码 encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。 该方法不会对 ASCII 字母和数字进行编码也不会对这些 ASCII 标点符号进行编码 - _ . ! ~ * ( ) 。 其他字符比如 ;/?:$,# 这些用于分隔 URI 组件的标点符号都是由一个或多个十六进制的转义序列替换的。 encodeURI() 函数可把字符串作为 URI 进行编码。 对以下在 URI 中具有特殊含义的 ASCII 标点符号encodeURI() 函数是不会进行转义的 , / ? : $ # (可以使用 encodeURIComponent() 方法分别对特殊含义的 ASCII 标点符号进行编码。). 提示使用 decodeURI() 方法可以解码URI通用资源标识符:UniformResourceIdentifier,简称URI)。 参考js编码解码decodeURI()与decodeURIComponent()的区别_技术之路-CSDN博客_decodeuricomponent
1. 定义和用法 decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。 decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。 从W3C的定义和用法来看两者没有什么区别但是两者的参数是有区别的
decodeURI(URIstring) //URIstring 一个字符串含有要解码的 URI 或其他要解码的文本。
decodeURIComponent(URIstring) //URIstring 一个字符串含有编码 URI 组件或其他要解码的文本。 2.使用中区别用法 区别encodeURIComponent和decodeURIComponent可以编码和解码URI特殊字符如#/等而decodeURI则不能。
encodeURIComponent(#)
%23
decodeURI(%23)
%23
decodeURIComponent(%23)
#
encodeURI(#)
# 可以看出encodeURI和decodeURI对URI的特殊字符是没有编码和解码能力的实际项目中我们一般需要get请求的方式在地址栏中拼接一些参数但是参数中如果出现#/,这些字符就必须要用decodeURIComponent了不然这些特殊字符会导致我们接收参数的错误
假如我们要传一个code字段到http://www.xxx.com值为20180711#abc
var codeVal encodeURI(20180711#abc);
var url http://www.xxx.com?code codeVal;
console.log(url);
http://www.xxx.com?code20180711#abc
http://www.xxx.com接收参数 location.search //?code20180711;
decodeURI(?code20180711) //?code20180711
这时候我们拿到的code参数明显是错误的被特殊字符#截断了下面我们来看用decodeURIComponent方法
var codeVal encodeURIComponent(20180711#abc);
var url http://www.baidu.com?code codeVal;
url;
http://www.baidu.com?code20180711%23abc
http://www.xxx.com接收参数
location.search //?code20180711%23abc
decodeURIComponent(?code20180711%23abc) //?code20180711#abc