使用 wget 递归下载时文件名编码/解码错误

使用 wget 递归下载时文件名编码/解码错误

我正在使用递归方式从远程目录下载文件wget,并且无论谁创建了文件夹和文件,都使用了特殊字符(例如è或)Ó,当我下载单个指定完整路径+文件名时,文件会以其名称正确下载,但是当我尝试使用该选项下载包含所有文件和目录的文件夹时,-r文件名未正确编码或解码。

据我所知,文件名ascii在请求中作为 发送,并且我的机器和服务器都UTF-8对 进行了编码$PATH,因此这也不应该是问题。

当 wget 创建文件时,è文件名中的字符(我将使用它作为示例)将保存为\350八进制字符代码,并显示为è。 这种情况仅在我递归下载文件时发生,如果我使用完整的 URL 下载此文件,则文件名会正确显示。

我花了相当多的时间到处查找问答,并且我尝试了我所见过的所有方法,从设置--local-encoding--remote-encodingUTF-8,使用--restrict-file-names=nocontrol等等。

端口 21 和 22 已关闭,所以我无法通过 SCP 或 FTP 下载文件,很可能任何其他下载文件的协议都会出现相同的错误,但我愿意使用任何不常见的协议。

另外,我遇​​到的主要问题是,当我下载文件并尝试将它们复制到备份文件夹时,某些文件有时会由于文件名混乱而出现文件未找到的错误,现在我使用--restrict-file-names=ascii并保留名称ascii作为解决方法,但我需要将编码更改为UTF-8,而且我无法在机器上安装任何应用程序,例如 convmv(老板的命令)。

这是我用来下载文件的命令: wget --keep-session-cookies --cookies=on --no-check-certificate --restrict-file-names=nocontrol --convert-links --no-parent -r <URL>

这是通过递归下载单个文件与所有文件来保存文件名的方式:

OT14-004 CEIP Pins del Vallès.vsd

OT14-004 CEIP Pins del Vallès.vsd

CentOS Linux release 7.0.1406 (Core) 我正在使用装有此发行版和此 wget 版本的机器GNU Wget 1.14 built on linux-gnu

相关内容