encodeURI、decodeURI、encodeURIComponent与decodeURIComponent的区别

encodeURI

会对非ACSII字母、数字以及- _ . ! ~ * ' ( )符号和URI


分隔符;/?:@&=+$,#之外的所有字符进行十六进制的转义序列进行替换


如:encodeURI(“http://www.baidu.com/pa th/我的”)返回


"http://www.baidu.com/pa%20th/%E6%88%91%E7%9A%84"


encodeURIComponent

encodeURIComponent与encodeURI的作用几乎相同而区别是



encodeURIComponent会对URI分隔符;/?@$=+#等进行转义


encodeURI(“http://www.baidu.com/pa th/我的”)


返回"http%3A%2F%2Fwww.baidu.com%2Fpa%20th%2F%E6%88%91%E7%9A%84"

decodeURI、decodeURIComponent

很明显decodeURI和decodeURIComponent就是encodeURI和encodeURIComponent的反向解码方法


encodeURI()主要用于前端与后端衔接处类似cookie、AJAX等多数情况都是避免URL的中文路径在后端形成乱码而进行编码。与encodeURI类似的还有escape()方法但在新的ES标准中已经不建议使用escape()方法了建议使用encodeURI和encodeURIComponent代替


你可能感兴趣的:(JavaScript,html,uri)