urlencode() {
# urlencode <string>
local length="${#1}"
for (( i = 0; i < length; i++ )); do
local c="${1:i:1}"
case $c in
[a-zA-Z0-9.~_-:/]) printf "$c" ;;
*) printf '%%%x' \'"$c" ;;
esac
done
}
然后,您可以使用此函数在传递到curl之前转换您的url。 curl --request GET -v --user user$site:password $(urlencode "https://www.whatever.com/uploads/Filename With Spaces.csv") > /users/kanye_west/desktop/FilenameWithSpaces.csv个
4条答案
按热度按时间ndasle7k1#
将URL放在引号中。
反斜杠在Unix上可以使用,但在Windows上不能用作转义字符,因为它们是目录分隔符的原始形式。
o2rvlv0m2#
如果是在Windows批处理文件中,则使用
%%20
代替空格。由于批处理文件中的%20
表示第20个参数。因此,对于编码%
,使用%%
。v8wbuo2f3#
将每个空格替换为%20
yvfmudvl4#
这里有一个简单的技巧来编码url,它不仅仅编码空格。
然后,您可以使用此函数在传递到
curl
之前转换您的url。curl --request GET -v --user user$site:password $(urlencode "https://www.whatever.com/uploads/Filename With Spaces.csv") > /users/kanye_west/desktop/FilenameWithSpaces.csv
个