URL中加号(+)转义问题

前端通过URL传入一个参数,在后台日志中发现参数中的加号变成了空格。

前端传入"a+b"

后台日志"a b"

先说结论

HTTP为了避免歧义,一些字符传入后台需要做转义,例如:

" - %22

- %23

% - %25

& - %26- %2B加号在传入后台的时候,应该转换为 %2B,但是当加号在 URL 中时,特殊的,它会变成空格(Chrome浏览器自动转换)。

为什么会出现这个问题,不清楚。但是如果需要传入 +,在拼接 URL 之前把 + 转换为 %2B 即可。这是最合理的解决方法。

GET POST 表单提交的转义

另外,在提交表单时,参数会自动完成转义,并且这个转义是符合预期的。

GET提交的转义:

1+1 转换为 1%2B1

POST提交的转义:

1+1 转换为 1%2B1

如何手动转换

在前端拼接 URL,如果需要转换 +,可以用 encodeURIComponent 函数进行转义。

需要注意,encodeURI 和 URL 的转义类似,不能正确处理 +。

encodeURIComponent 可以正确转换 +。

代码:let s = '1+1'

let var_encode_s1 = encodeURI(s)

let var_encode_s2 = encodeURIComponent(s)

console.log(var_encode_s1)

console.log(var_encode_s2)

输出:1+1

1%2B1

php 加号转义,URL中加号(+)转义问题相关推荐

  1. java url 加号,URL中加号(+)转义问题

    URL中加号(+)转义问题 前端通过URL传入一个参数,在后台日志中发现参数中的加号变成了空格. 前端传入"a+b" 后台日志"a b" 先说结论 HTTP为了 ...

  2. 网址URL中特殊字符转义编码

    网址URL中特殊字符转义编码 字符    -    URL编码值 空格    -    %20 "          -    %22 #         -    %23 %       ...

  3. 浏览器URL中特殊字符转义编码

    网址URL中特殊字符转义编码 字符    -    URL编码值 空格    -    %20 "          -    %22 #         -    %23 %       ...

  4. html 井号 转义,url中出现井号(#)的问题

    今天在asp.net mvc网站项目的前台页面里写一段js代码时,想要跳转到某个url,例如 location.href="xxxx?"+"id="+id+&q ...

  5. html转义es,Js特殊字符转义之htmlEscape()方法

    为了防止XSS攻击,常常需要将用户输入的特殊字符进行转义,原生js貌似还没有直接对其专业的方法,最近再读Js高级程序设计的时候刚好看到,碰巧项目中也刚好需要使用次方法,于是就之家搬来用了. 网上关于转 ...

  6. URL中参数中的加号

    问题:当URL中参数值中有加号时,java后台获取该参数后,加号消失 解决方法:在js中,拼接URL地址时,用encodeURIComponent对该参数进行编码:后台直接用request.getPa ...

  7. [故障引起的故事]URL中带加号(+)的处理

    问题起因:       客户订购了一关键字为"e+h 变送器" , 在首页推荐广告中,会根据用户在search 搜索过的关键字进行一个匹配投放.技术实现是UED 通过JS 获取co ...

  8. URL中特殊字符的转义

      在URL中,某些字符代表特殊的含义,所以当我们的URL中包含有这些字符时,需要对这些字符进行转义.下图是一些常用URL字符的转义规则. 特殊字符 代表含义 转义字符 ? 分隔实际URL和参数 %3 ...

  9. php url传递 加号,坑爹的URL编码-PHP正确处理URL中的加号(+)

    问题背景 接收客户端传入参数,base64解码失败,经过排查发现原因是参数上传前字符串中有+,但是PHP接收后,发现+变成了空格,导致base64解码失败. 测试验证 访问一个测试的接口 /inter ...

  10. URL特殊字符需转义

    URL中一些字符的特殊含义,基本编码规则: 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分 ...

最新文章

  1. CountDownTimer的简单使用
  2. 球面贴图,立方体贴图的比较
  3. acwing算法题--分组背包问题
  4. 浅析java内存管理机制
  5. 并归排序(看别人的看不懂,自己写了一个),排序思想是一样的
  6. Redis实现分布式锁释放锁
  7. android fragment 底部菜单栏,一句话搞定Android底部导航栏,一键绑定Fragment、ViewPager...
  8. java bmp转jpg,在java中将bmp转换为jpg
  9. 【高校宿舍管理系统】第五章 JWT原理和应用以及实现功能菜单
  10. 在HTML中使用JavaScript
  11. 是否可以在SQLite数据库中一次插入多行?
  12. ELK 收集 Docker 日志
  13. 施耐德SoMachine Basic中存在高危漏洞(CVE-2018-7783),可读取目标系统上的任意文件...
  14. repo clean
  15. 毛笔字软件测试简历,写字测试
  16. 机器人香囊_原来这些穿古装的小孩都是假人,这些店铺都是卖香囊的
  17. 判断人物眼型matlab,怎么判断眼型和脸型?
  18. World Locking Tools for Unity (一)指南部分
  19. 手机被DNS劫持后的更改方案
  20. 瞧不起,与 “瞧不起”

热门文章

  1. Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题
  2. php版本微信公众号开发
  3. 职场职位缩写 PM,TM,PL,TL,SE,PG,CEO,CFO
  4. 树莓派能否替代linux开发板,12 个可替代树莓派的单板机 | Linux 中国
  5. 前端学习 -- HtmlCss -- 背景
  6. web 前端后端分工
  7. TiDB x 中国电信翼支付 | 「效率提升 5 倍」,TiDB 在电信翼支付金融核心场景的应用
  8. Attributes as Operators
  9. Microsoft Edge浏览器黑色背景修改
  10. html怎么设置变灰,html 背景变灰