在我们平时的开发中,经常会出现一些无效的URI,什么是无效的URI呢?比如说包含空格,冒号,等号等,会影响解析。这时候我们就需要encodeURI或者encodeURIComponent()方法出动了。

encodeURI 会替换所有的字符,但不包括以下字符,即使它们具有适当的UTF-8转义序列:

类型 包含
保留字符 ;,/?:@&=+$
非转义的字符 字母 数字-_.!~*'()
数字符号 #

encodeURIComponent 转义除了字母、数字、().!~*'-_之外的所有字符。

我觉得这两个方法之间相差不大,用的更广泛的是encodeURIComponent()方法,因为在实践中我们更多的是对查询字符串进行编码而不是基础URI。

以上。

欢迎来到我的个人博客来互相讨论技术:http://www.strivingtree.com/