Windows CURL 下载文件-URL 中的特殊字符

Windows CURL 下载文件-URL 中的特殊字符

我需要使用 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 文章:

调用 Web 请求
URI 类

相关内容