原因
写项目的过程中需要拿到后端的pay_link数据,通过form表单加post的方式跳转页面.
在此记录一下 encodeURI与encodeURIComponent 编码解码的区别
链接: link.
编码
它们都是编码URL,唯一区别就是编码的字符范围,其中
encodeURI方法不会对下列字符编码 ASCII字母 数字 ~!@#$&*()=:/,;?+'
encodeURlComponent方法不会对下列字符编码 ASCII字符 数字 *~1()'
所以encodeURlComponent比encodeURI编码的范围更大.
实际例子来说,encodeURlComponent会把 http:// 编码成 http%3A%2F%2F
而encodeURI却不会。
encodeURI 是用来处理整个 URI 的,接受 URI 的 protocol, host, port 等部分,
只对 path 和 query 进行编码。
而 encodeURIComponent 是用来编码你准备用作 query 一部分的字符串的。
// An highlighted block
encodeURI('https://www.baidu.com/ a b c')
// "https://www.baidu.com/%20a%20b%20c"
encodeURIComponent('https://www.baidu.com/ a b c')
// "https%3A%2F%2Fwww.baidu.com%2F%20a%20b%20c"