1.encodeURIComponent(URIstring)/doencodeURIComponent(URIstring)
可把字符串作为URI 组件进行编码/解码。其返回值URIstring的副本,其中的某些字符将被十六进制的转义序列进行替换。
URIs, URLs, and URNs
URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL,是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-net@java.sun.com。
URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。
2.encodeURI(URIstring)/doencodeURI(URIstring)
可把字符串作为URI 组件进行编码/解码。其返回值URIstring的副本,其中的某些字符将被十六进制的转义序列进行替换。
Ps:该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
Tips:如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。
URI包含的五种字符:
保留字符: ;/?:@&=+$,
非转义字符: 1.26个字母大小写,共计52个 2.十进制0-9,共计10个 3.标记符共计8个 - _ . ! ~ * ' ( )
#: 不会被编码的转义序列,不是保留字符,也不是非转义字符(表示一个序列)
其他字符: 没有出现在上列的字符
%: 被转义字符,十六进制‘%xx’,十六进制字符:0123456789ABCDEF