Как сохранить веб-ресурс, применяя декодирование к кодированным символам URL?

В Bash просто используйте

shopt -s nullglob
for pdfFile in *.java;do
    # your code goes here
done

Этот синтаксис предназначен для Bourne-подобных оболочек; опция nullglob специфична для bash. Скобки, которые вы использовали ({}), предназначены для оболочек в стиле C.

shopt -s nullglob устанавливает опцию nullglob, которая в основном указывает Bash, что глобы, которые не смогли найти соответствия, должны быть расширены в нулевую строку. По умолчанию, если *.java не совпадает, он расширяется в себя (звездочка остается).

0
01.02.2019, 13:04
2 ответа

Если ваш Wget создан с поддержкой IRI, он автоматически обработает этот случай.

Взгляните на свой wget --version. Мой показывает это:

GNU Wget 1.20.1.7-5dce-dirty built on linux-gnu.

-cares +digest +gpgme +https +ipv6 +iri +large-file +metalink +nls 
+ntlm +opie +psl +ssl/gnutls 

Важная часть для вас здесь +iri. Большинство дистрибутивов должны компилировать его с включенным IRI по умолчанию.

РЕДАКТИРОВАТЬ :Похоже, что сервер в этом случае отправляет имя файла, закодированное в латинице -1. Хотя предположение по умолчанию всегда utf -8. В идеале сервер должен отправить заголовок Content-Disposition, чтобы упомянуть об этом. Однако это может быть обработано Wget, если вы передадите ему опцию --remote-encoding=latin1.

1
28.01.2020, 02:23

В более общем смысле, чем простоwget:

Инструмент unvisделает это с опцией -hдля указания процентного кодирования. (Обратите внимание, что в версиях инструмента для OpenBSD и MacOS этого нет.)

Ваше процентное -закодированное имя не в UTF -8, обратите внимание.

% printf '%s' 'spesa%20del%20settore%20sanit%E0.csv' | unvis -h | hexdump -C
00000000  73 70 65 73 61 20 64 65  6c 20 73 65 74 74 6f 72  |spesa del settor|
00000010  65 20 73 61 6e 69 74 e0  2e 63 73 76              |e sanit..csv|
0000001c
% printf '%s\n' 'spesa%20del%20settore%20sanit%E0.csv' | unvis -h | iconv -f latin1
spesa del settore sanità.csv
%

Дополнительная литература

  • unvis. Руководство по основным командам FreeBSD . 2010 -11 -27.
  • unvis. Руководство по основным командам OpenBSD . 2013 -08 -12.
2
28.01.2020, 02:23

Теги

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