背景
今天在获取其他站点重定向添加到我cms后台管理的url参数时,碰到参数中的“+”全部变成了空格的情况
原因
是URL中默认的将“+”号转义了
W3C标准规定,当Content-Type为application/x-www-form-urlencoded时,URL中查询参数名和参数值中空格要用加号+替代,所以几乎所有使用该规范的浏览器在表单提交后,URL查询参数中空格都会被编成加号+。
而在另一份规范RFC2396,定义URI里, URI里的保留字符都需转义成%HH格式(Section 3.4 Query Component),因此空格会被编码成%20,加号+本身也作为保留字而被编成%2B,对于某些遵循RFC 2396标准的应用来说,它可能不接受查询字符串中出现加号+,认为它是非法字符。文章来源:https://www.toymoban.com/news/detail-535751.html
所以一个安全的举措是URL中统一使用%20来编码空格字符。文章来源地址https://www.toymoban.com/news/detail-535751.html
解决方法(2种):
- 将客户端带“+”的参数中的“+”全部替换为“2B%”
- 将空格替换为“+”,这种方式只适用于参数中有“+”没有空格的情况
到了这里,关于【浏览器】url参数中的“+”全部变成了空格原因及解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!