Url的编码格式采用的是ASCII码,而不是Unicode,也就是说你不能在Url中包含任何非ASCII字符,例如中文,如若包含特殊字符,都需要进行url编码,否则会导致服务器识别错误。
URl 中只允许包含英文字符(a-zA-Z)、数字(0-9)、-_.~4 个特殊字符及所有保留字符
保留字符 - URL编码值
空格 - %20
" - %22
# - %23
% - %25
& - %26
( - %28
) - %29
+ - %2B
, - %2C
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
> - %3E
? - %3F
@ - %40
\ - %5C
| - %7C
所以在使用时需要注意是否需要编码转义
区别:
escape
是对字符串(string)进行编码,作用是使该字符串在所有电脑上可读,编码之后的效果是%XX形式
escape('%deng%')
// "%25deng%25" 将百分号进行了转义编码%25
encodeURL和encodeURLComponent
这两种方法主要用于URL编码
encodeURI('http://baidu.com/abc?abc=%d')
// "http://baidu.com/abc?abc=%25d"
encodeURIComponent('http://baidu.com/abc?abc=%d')
"http%3A%2F%2Fbaidu.com%2Fabc%3Fabc%3D%25d"
上面示例可知:
- encodeURI函数假定URI中的任何保留字都有特殊意义,故不会编码他们
- encodeURIComponent函数会将uri中的所有保留字符都解析掉