我正在使用递归方式从远程目录下载文件wget
,无论是谁创建了文件夹和文件,使用了特殊字符,例如è
或Ó
,当我下载指定完整路径+文件名的单个文件时,文件将以其名称正确下载,但是当我只需尝试使用-r
文件名未正确编码或解码的选项下载包含所有文件和目录的文件夹。
从我收集到的信息来看,文件名ascii
在请求中作为 an发送,并且我的机器和服务器都UTF-8
对 进行了编码$PATH
,所以它也不应该是一个问题。
当 wget 创建文件时,文件名中的è
字符(我将以此为例)保存为\350
八进制字符代码,并显示为è
. 这只发生在我递归下载文件时,如果我使用完整的 URL 下载这个文件,文件名就会正确显示。
我花了几个小时了相当数量的查找Q / A在这里和那里,我已经尝试了一切我所看到的,从环境--local-encoding
和--remote-encoding
到UTF-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
我正在使用带有此发行版 …