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

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

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

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

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

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

  3. java 中文 转义_java下载url路径包含中文需要转义的操作

    大家看这个url: http://127.0.0.1:9997/file/江苏省地震应急预案(二级).docx 应为url路径中有中文没有转义,输入流报错 The valid characters a ...

  4. Java如何将URL读取的内容存入本地文件中

    要想访问网络资源,首先需要建立一个URL对象,通过openStream方法读取指定的资源 读取网络资源内容,要构建一个输入流 要想将内容写入文件,要构建一个文件对象和相应的文件输出流 具体代码实现如下 ...

  5. java实现从url路径中下载pdf文档到本地

    import java.io.*; import java.net.*;public class DownloadPdf {/*** 从网络Url中下载文件* @param urlStr pdf网页的 ...

  6. java url类_Java中的URL类和示例 - Break易站

    URL类是Internet上任何可用资源的网关.类URL表示统一资源定位符,它是指向万维网上"资源"的指针.资源可以指向简单的文件或目录,也可以引用更复杂的对象,例如对数据库或搜索 ...

  7. java 怎么对url解码_如何在Java中进行URL解码?

    在Java中,我想将其转换为: https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type 对此: https ...

  8. java 调用url_java程序中访问url接口

    在多人开发项目中,我们经常要在自己程序内部调用别人的http请求接口,主要通过流的方式进行调用,最近项目中经常用到,写了个访问接口如下: /** * 程序中访问http数据接口 */ public S ...

  9. java 从网络Url中下载文件

    转自:http://blog.csdn.net/xb12369/article/details/40543649 /*** 从网络Url中下载文件* @param urlStr* @param fil ...

最新文章

  1. 【java】兴唐第二十五节课小程序学生卡转账小系统(自己写的异常)
  2. Nature:拟南芥微生物组功能研究
  3. singleInstance和singleTask导致startActivityForResult回调失败
  4. HTML5 速查列表
  5. python学习笔记四一列表元组字典等
  6. Exynos4412 Uboot 的使用与烧写
  7. C语言指针操作字符数组demo
  8. 什么样的架构师才是真正的架构师?
  9. 1、数列求值 - 2019年第十届蓝桥杯大赛软件类省赛
  10. Java JDBC spring-jdbc
  11. Dubbo关于timeout等相关配置的优先级
  12. 回溯法 —— 判断子集和问题是否存在解
  13. [RESTful web services读书笔记] 接口设计中维持XML和JSON表述的兼容性
  14. Atitit 软件国际化原理与概论
  15. java房屋租赁系统源码,基于jsp+mysql+Spring开发,免费分享
  16. MCSA Windows Server 2016 Complete Study Guide, 2nd Edition 免积分下载
  17. avc 转 hevc
  18. 求A,B 输入三位数字N,求两位数AB(其中个位数字为B,十位数字为A,且有0 #60 A #60 B #60 9)。
  19. Android 图片波浪动画,Android水纹波浪动画
  20. 大学校园景观规划设计

热门文章

  1. 求矩阵乘法及行列式的值
  2. 群晖nas免费内网穿透,实现外网异地远程访问
  3. 怎么学python-Python 应该怎么学?
  4. 学习布局(21)HTML5新标签
  5. Oracle11g密码忘记
  6. 社区综合管理系统springboot+vue
  7. linux刷新屏幕命令是什么,linux重启刷新桌面方法教程
  8. 第一篇——胡咧咧之动漫素材如何最有效最快的查找下载,动漫网站有哪些?
  9. 爬取王者荣耀皮肤-点券领取
  10. 超火壁纸!隐藏 Dock 栏+AirTag 渐变