Кодируем URL из командной строки
Иногда нужно отправить get-запрос на веб-сервер без браузера, например:
Всё это работает до тех пор, пока параметром запроса не становится слово, содержащее нелатинские буквы либо специфические знаки. Например, вариант
не прокатит. Такие URL-параметры должны быть должным образом закодированы. Как это сделать прямо из командной строки? Секретами делятся консольные гуру с commandlinefu.com.
Результат —
Хех! Перл-шмерл… Суровые знатоки Groovy делают это так:
Результат тот же —
wget http://blablabla.bla/hz.cgi?uid=Yababay
Всё это работает до тех пор, пока параметром запроса не становится слово, содержащее нелатинские буквы либо специфические знаки. Например, вариант
wget http://blablabla.bla/hz.cgi?uid=Бабайка
не прокатит. Такие URL-параметры должны быть должным образом закодированы. Как это сделать прямо из командной строки? Секретами делятся консольные гуру с commandlinefu.com.
perl -MURI::Escape -e 'print uri_escape("Бабайка");'
Результат —
%D0%91%D0%B0%D0%B1%D0%B0%D0%B9%D0%BA%D0%B0
Хех! Перл-шмерл… Суровые знатоки Groovy делают это так:
groovy -e 'println URLEncoder.encode("Бабайка")'
Результат тот же —
%D0%91%D0%B0%D0%B1%D0%B0%D0%B9%D0%BA%D0%B0
Комментарии (6)
RSS свернуть / развернутьобратно то как?
Gangsta
Сам только что узнал
yababay
www.hz.hz/?hz=%D0%91%D0%B0%D0%B1%D0%B0%D0%B9%D0%BA%D0%B0
Браузер ругнется на несуществующий сервер, но URL в кириллицу перекодирует. Этот принуип использоват в Википедии.
yababay
urlencode(«бабайка»);
urldecode(«бабайка»);
на мой взгляд даже проще.
S1eng
yababay
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.