escape
编码字符串,将特定字符替换为十六进制表示的转义串。
语法
escaped = escape(regular);
escaped是被编码了的字符串regular是原始字符串
示例
alert(escape("http://www.cnn.com")); // 显示: http%3A//www.cnn.com
注意
excape()方法将特殊字符转变为十六进制的字符表示,这对于作为cookie值非常有必要。同样的,在传递name=value对的URL钟,和GET/POST的AJAX方法中,编码也十分必要。
它编码所有特殊字符,除了这些: * @ - _ + . /
encodeURI
将同一资源标识符的每个utf-8字符用一个,两个,三个或者四个转义字符串表示(每个转移字符串格式为%XX)
语法
encodeURI(URI)
参数
- 完整的同一资源标识符
URI详细介绍
encodeURI并不编码在同一资源标识符中含有特殊含义的字符。
它通过合适的UTF-8转义序列替换所有字符,除了以下字符:
| Type | Includes |
| Reserved characters |
; , / ? : @ & = + $ |
| Unescaped characters |
alphabetic, decimal digits, - _ . ! ~ * ' ( ) |
| Score |
# |
注意encodeURI自身并不能形成合适的HTTP GET和POST请求,因为对于像XMLHTTPRequest这样的请求中出现的"&","+"和"="并没有被编码,而这些字符在请求中是具有特殊含义的。可以使用encodeURIComponent执行这些操作。
encodeURIComponent
将同一资源标识符中的请求参数单元的每个utf-8字符用一个,两个,三个或者四个转义字符串表示(每个转移字符串格式为%XX)
| Core Global Method | |
|---|---|
| Implemented in | JavaScript ? |
| ECMAScript Edition | ECMAScript 3rd Edition |
语法
var encoded = encodeURIComponent(str);
参数
- 统一资源标识符中的请求参数
str详细描述
encodeURIComponent转义除后面这些字符的所有字符:字母 数字 - _ . ! ~ * ' ( )
为避免向服务器发送不可预测的请求,你应该调用encodeURIComponent来转义用户输入的每个作为URI请求的参数。例如,用户输入 "Thyme
&time=again"作为变量comment的值,不使用encodeURIComponent使得结果为comment=Thyme%20&time=again。从而新增属性time。
对于application/x-www-form-urlencoded (POST),空格将被替换为'+',所以如果你想模仿这种传输类型,需要将"%20"替换为"+"

本文介绍了URL编码的方法,包括escape、encodeURI及encodeURIComponent的功能与用法。这些函数用于将特殊字符转换为十六进制或UTF-8格式,适用于网络传输中确保数据的正确性。
677

被折叠的 条评论
为什么被折叠?



