encodeURIComponent函数
为什么使用encodeURIComponent
在使用 URL 传参的时候,如果参数中有空格等
特殊字符
,浏览器可能只会读取到空格面前的内容,导部分致数据丢失。encodeURIComponent() 是用于对整个 URI 组件进行编码的函数,几乎所有非字母数字的字符(+、/、=等)都会被编码。
定义与语法
- 定义
encodeURIComponent()
函数可把字符串作为 URI 组件进行编码。
- 语法
encodeURIComponent(URIstring)
对应解码decodeURIComponent()函数
decodeURIComponent()
用于对 encodeURIComponent() 进行反转义
encodeURI()和encodeURIComponent() 区别
关于编码和解码,目前js常用的就两套:
1.encodeURI 和 decodeURI
2.encodeURIComponent 和 decodeURIComponent
encodeURI 不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;
encodeURIComponent 会对它发现的任何非标准字符进行编码。
为什么encodeURIComponent / encodeURI编码时要编码两次
encodeURI使用的是 UTF-8 编码规则来编的,当服务器接收url的参数后会自动解码一次,但自动解码的字符集不一定是UTF-8,字符集不一致时解码会出现乱码。