curl下载文件时如何对已编码的中文URL进行解码?

上网、浏览、聊天、下载等
回复
drop
帖子: 14
注册时间: 2018-05-26 19:54

curl下载文件时如何对已编码的中文URL进行解码?

#1

帖子 drop » 2022-02-12 17:43

如:

“猪.zip“进行URL编码后是“%E7%8C%AA.zip“

代码: 全选

curl -O https://xxx.xx/%E7%8C%AA.zip
这样下载下来的文件名是“%E7%8C%AA.zip“,如何让curl在下载时自动把文件名解码成“猪.zip”呢? :What
头像
astolia
论坛版主
帖子: 6570
注册时间: 2008-09-18 13:11

Re: curl下载文件时如何对已编码的中文URL进行解码?

#2

帖子 astolia » 2022-02-12 18:36

你为什么要自己去编码呢?直接curl -O https://xxx.xx/猪.zip不行吗
drop
帖子: 14
注册时间: 2018-05-26 19:54

Re: curl下载文件时如何对已编码的中文URL进行解码?

#3

帖子 drop » 2022-02-12 19:33

astolia 写了: 2022-02-12 18:36 你为什么要自己去编码呢?直接curl -O https://xxx.xx/猪.zip不行吗
因为URL中的中文在复制到终端的时候会自动变成“%E7%8C%AA”,没办法 :em06
头像
astolia
论坛版主
帖子: 6570
注册时间: 2008-09-18 13:11

Re: curl下载文件时如何对已编码的中文URL进行解码?

#4

帖子 astolia » 2022-02-12 21:50

尽量复制文字,而不是复制链接。
实在不行只能自己写段脚本来解码了,用bash的话可以

代码: 全选

urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
curl -O "$(urldecode https://xxx.xx/%E7%8C%AA.zip)"
或者你去试试wget
回复