原来的:
它们是:escape()、encodeURI()、encodeURIComponent()、
对应的3个解码函数:
unescape()、decodeURI()、decodeURIComponent()。
下面简单介绍一下它们的区别
1.escape()函数
定义和用法
escape() 函数对字符串进行编码,以便可以在所有计算机上读取。
句型
转义(字符串)
参数说明
字符串是必需的。 要通配符或编码的字符串。
返回值
编码字符串的副本。 单个字符将替换为十六进制通配符序列。
阐明
此方法不会对 ASCII 字母和数字进行编码,也不会对以下 ASCII 标点符号进行编码:-_.*
所有其他字符均替换为通配符序列。
2encodeURI()函数
定义和用法
encodeURI() 函数将字符串编码为 URI。
句型
编码 URI(URI 字符串)
参数说明
URI 字符串是必需的。 使用 URI 或其他要编码的文本进行丰富的字符串。
返回值
URIstring 的副本,其中单个字符被替换为通配符的十六进制序列。
阐明
该方法不编码 ASCII 字母和数字,也不编码此类 ASCII 标点符号:-_.!~*'()。
该方法的目的是对URI进行完整编码,因此encodeURI()函数不会对URI中以下具有特殊含义的ASCII标点符号执行通配符:;/?:@&=+$,#
3encodeURIComponent()函数
定义和用法
encodeURIComponent() 函数将字符串编码为 URI 组件。
句型
编码 URIComponent(URIstring)
参数说明
URI 字符串是必需的。 使用 URI 组件或其他要编码的文本进行丰富的字符串。
返回值
URIstring 的副本,其中单个字符被替换为通配符的十六进制序列。
阐明
该方法不编码 ASCII 字母和数字,也不编码此类 ASCII 标点符号:-_.!~*'()。
其他字符(例如:;/?:@&=+$,# 用于分隔 URI 组件的标点符号)将替换为一个或多个十六进制补码通配符序列。
提示和注释
提示:请注意encodeURIComponent() 函数和encodeURI() 函数之间的区别,后者假定其参数是URI 的一部分(例如合同、主机名、路径或查询字符串)。 因此,encodeURIComponent() 函数使用通配符作为标点符号来分隔 URI 的各个部分。
4 总结:
通过对三个函数的分析我们可以知道:escape()不仅对ASCII字母、数字和特定符号进行编码,而且对所有传入的带有通配符的字符串进行编码,所以如果要对URL进行编码,最好不要使用这种技术。 而encodeURI()用于对整个URI进行编码jquery 字符串包含字符串jquery 字符串包含字符串,因为URI中的合法字符不会被编码。 encodeURIComponent方法应该是最常用的,用于对单个URIComponent(指请求参数)进行编码。 它可以将参数中的英语和特殊字符作为通配符,而不影响整个 URL。
5个例子:
1转义()
输出: