在JavaScript中传递包含特殊字符的参数时,若未进行编码处理易导致请求错误。本文详解encodeURI与encodeURIComponent方法的区别,指出前者保留部分符号而后者对所有非字母数字字符进行编码,并提供正确的参数编码解决方案。
特殊字符导致的传参错误
当URL参数中包含类似 `~!@#$%^&*()_ -=[]{}|;':”,.\/<>?` 等特殊字符时,若未进行适当处理,极易引发传参错误。
具体解决方法如下:
encodeURI 方法详解
使用 encodeURI 方法
该方法可将文本字符串编码为一个有效的统一资源标识符 (URI)。
语法为 encodeURI(URIString)
其中,URIString 为必选参数,代表一个已编码的 URI 字符串。
详细说明
encodeURI 方法会返回一个经过编码的 URI。若将编码结果传递给 decodeURI,可还原为初始字符串。需要注意的是,encodeURI 不会对以下字符进行编码:":"、"/"、";" 和 "?"。如需对这些字符进行编码,应使用 encodeURIComponent 方法。