Назад | Перейти на главную страницу

Неверное кодирование / декодирование имени файла при рекурсивной загрузке с помощью wget

Я рекурсивно загружаю файлы из удаленного каталога, используя wget и тот, кто создавал папки и файлы, использовал специальные символы, такие как è или Ó, когда я загружаю один файл с указанием полного пути + имени файла, файл загружается с его именем правильно, но когда я просто пытаюсь загрузить папку со всеми файлами и каталогами, используя параметр -r имена файлов неправильно закодированы или декодированы.

Из того, что я собрал, имя файла отправляется как ascii в запросе, и моя машина и сервер имеют UTF-8 кодирование на $PATH, так что это тоже не должно быть проблемой.

Когда wget создает файл, è символ (который я буду использовать в качестве примера) в имени файла сохраняется как \350 в восьмеричном коде символов, и он отображается как è. И это происходит только тогда, когда я загружаю файлы рекурсивно, если я загружаю этот файл, используя полный URL-адрес, имя файла отображается правильно.

Я потратил немало часов на поиск вопросов и ответов здесь и там, и я перепробовал все, что видел, начиная с настройки --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

Я использую машину с этим дистрибутивом CentOS Linux release 7.0.1406 (Core) и с этой версией wget GNU Wget 1.14 built on linux-gnu