Как загрузить ссылку с помощью unicode с помощью wget?

Иногда ссылка имеет в ней символы юникода, такие как http://www.example.com/файл.zip

Если вы укажете на нее свой браузер, он запросит вас правильно загрузить файл как файл.zip. Но если вы попытаетесь сделать это с помощью wget, файл будет содержать сочетание?, Процентного кодирования (например,% D0% BB) и строки (invalid encoding) после имени файла.

Какие параметры могут Я добавляю к wget или любым другим трюкам командной строки, так что он ведет себя как Chrome и Firefox и сохраняет файл в точности так, как указано в визуализированной ссылке - в этом случае, как файл.zip?

Решение должен работать без необходимости явно писать его в команде, поэтому явное wget -O файл.zip http://www.example.com/файл.zip не является хорошим решением.

Я понимаю, что как только вы запустите wget http://www.example.com/файл.zip, он попытается извлечь http : //www.example.com/файл.zip , то есть он преобразует ссылку в процентную кодировку, что может быть причиной ее сохранения, не отображает имя файла «правильно».

Я разместил здесь несколько смежный вопрос, ответ на который может или не может помочь этому.

1
задан 23 May 2017 в 15:39

1 ответ

для wget вы можете использовать

wget http://www.example.com/файл.zip --restrict-file-names = nocontrol

, если ваша система может обрабатывать utf-8 / другое кодирование правильно.

, наконец, если у вас все еще есть эти символы%, оставшиеся в вашем загруженном файле, вы можете использовать python - restrict-file-names = nocontrol (filename)

20
ответ дан 25 May 2018 в 02:57
  • 1
    Это должно быть отмечено как принятый ответ. Если комбинация этого и всего остального, что люди делают с wget (например, рекурсивно загружаясь), может быть выполнена в curl OP, и, возможно, все остальные уже сделали бы это. – Behrooz 15 June 2015 в 20:57
  • 2
    Может быть полезно также --restrict-file-names=nocontrol, если ссылка на файл не является окончательной. – ipeacocks 18 February 2016 в 03:54

Другие вопросы по тегам:

Похожие вопросы: