curl 下载地址中有特殊字符解决方案

curl 下载地址中有特殊字符解决方案 情况
使用 curl 下载 地址中带有 特殊字符的时候 比如下面这个地址。实际访问地址不正确,参数丢失问题

curl -o kspf.jpeg /img/bVcZOIF?a=1&b=2&c=3

【curl 下载地址中有特殊字符解决方案】上面这个 url 实际上在服务端接受的参数只有 a = 1 ,造成在服务器端接收的时候经常出现数据丢失的情况
curl -o kspf.jpeg /img/bVcZOIF?a=1

为什么会出现这个问题呢?因为 & 在 shell 中 表示任务在后台执行
原因
在url中直接使用特殊符号会截断命令让命令失去原本意义.
在shell 中某些符号被赋予了其他含义
符号 含义
& 表示任务在后台执行
&& 表示前一条命令执行成功时,才执行后一条命令
表示管道,上一条命令的输出,作为下一条命令参数
|| 表示上一条命令执行失败后,才执行下一条命令
...... ......
解决方案
知道特殊字符会被liunx 识别为命令符,所以我们需要编码转义特殊符号
url 常用字符及对应编码表
字符 URL编码值
空格 %20
" %22
\# %23
% %25
& %26
( %28
) %29
+ %2B
, %2C
/ %2F
: %3A
; %3B
< %3C
= %3D
\> %3E
? %3F
@ %40
\ %5C
%7C
# 根据上面表格我们把最终的命令为下面这样 curl -s -o kspf.jpeg /img/bVcZOIF?a=1%25b=2

原文地址:https://kspf.xyz/archives/155/
curl 下载地址中有特殊字符解决方案
文章图片

    推荐阅读