我需要使用 Windows cURL 下载 .xls 文件,但该文件的 URL 有问题,因为它包含特殊字符“Č”。
该 URL 是:http://www.ccs.cz/data/141001_Seznam_ČStxt14196.xls
我在 Windows 命令行或 gitbash 中尝试使用此命令:
curl "http://www.ccs.cz/data/141001_Seznam_ČStxt14196.xls" > file.xls
结果就是我下载了一个包含“此页面不存在”信息的 HTML 文件。我无法将 URL 编码为正确的格式,因此返回了该 xls 文件。
非常感谢您的建议。
答案1
这在 Windows 8.1 上的 PowerShell 中有效。 它也适用于 Windows 7 SP1 或更高版本上的 PowerShell 3.0 或更高版本。
Invoke-WebRequest "http://www.ccs.cz/data/141001_Seznam_ČStxt14196.xls" -OutFile '141001_Seznam_ČStxt14196.xls'
Invoke-WebRequest
是 PowerShell 中相当于 curl 的命令。由于 PowerShell 处理特殊字符比 CMD 更优雅,因此不需要进行 URL 编码。但是,由于 PowerShell 还提供对底层 .NET Framework 中类的访问,因此您可以[URI]::EscapeDataString()
在需要时使用类似命令进行编码。
有关更多信息,请参阅以下 MSDN/TechNet 文章: