我想用这个 URL “ http://pti.regione.sicilia.it/portal/page/portal/PIR_PORTALE/PIR_LaStrutturaRegionale/PIR_AssessoratoEconomia/PIR_DipBilancioTesoro/PIR_Areetematiche/PIR_ServizioStatistica/PIR_1839271.4501140784/PIR_idatidellaS %20settore%20sanit%E0.csv " 使用它的源名称,但保存它,将解码应用到它拥有的 URL 编码字符。
我们在 URL 中的名称是spesa%20del%20settore%20sanit%E0.csv
,我想以编程方式将其转换为spesa del settore sanità.csv
. 在源名称中,我们有%20
一个空格,%E0
即à
.
如何进行此名称转换?
我可以从这个表开始创建一个搜索和替换列表,但我想有一个实用程序,一个可以为我做的库。但是,我没有找到简单的 wget 或 curl 的正确方法。
谢谢
更普遍的不仅仅是
wget
:该
unvis
工具执行此操作,-h
并可选择指定百分比编码。(请注意,该工具的 OpenBSD 和 MacOS 版本没有此功能。)请注意,您的百分比编码名称不是 UTF-8。
进一步阅读
unvis
. FreeBSD 通用命令手册。2010 年 11 月 27 日。unvis
. OpenBSD 通用命令手册。2013-08-12。如果您的 Wget 是使用 IRI 支持构建的,那么它将自动处理这种情况。
看看你的
wget --version
。我的显示这个:对你来说重要的部分是
+iri
. 大多数发行版应该在默认启用 IRI 的情况下编译它。编辑:在这种情况下,服务器似乎发送了以 latin-1 编码的文件名。虽然默认假设始终是 utf-8。理想情况下,服务器应该发送一个
Content-Disposition
标头来提及这一点。--remote-encoding=latin1
但是,如果您将选项传递给它,它可以由 Wget 处理。