问题场景
今天排查问题,遇到一个BUG
页面前端传值:
Hello+ World
传到后台变成了
Hello World
一开始没有怀疑这个问题,那到底是为什么呢?
URL 的转移
URL 会对 +
进行转义。
解决方案
修改客户端
将客户端带“+”的参数中的“+”全部替换为“2B%”,这样参数传到服务器端时就能得到“+”了。
加密+解密配合
strURL = "search.do?param=" + encodeURIComponent(str);
普通的传参出现乱码问题,可使用encodeURI来转译,它会转译成UTF-8的格式;
strURL = "search.do?param=" + encodeURI(str);