Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > как передать + через get |
Автор: evya 28.12.2014, 13:09 |
Хочу передать через GET запрос test.pl?my=++++test++++++ my $query = new CGI; print $query->param('my'); скрипт плюсы не выводит, вместо них пробелы!!! как быть они мне нужны!!!! всем спасибо |
Автор: tzirechnoy 28.12.2014, 14:19 |
Вот спецыфикацыя прямого преобразования: http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 |
Автор: evya 28.12.2014, 15:06 |
чето ничего нипонятно куда копать из ссылки. print $ENV{'QUERY_STRING'}; выдает же нормально. нужно разбирать в ручную думаете get ? |
Автор: tzirechnoy 28.12.2014, 15:19 | ||
В английский словарь разве что. Хотя нет, у Вас ведь проблемы как раз с прямым преобразованием -- так что, по хорошэму, надо будет ещё выяснить список reserved characters из RFC1738. Впрочем, можно и не выяснять -- а защищать всё, кроме a-z A-Z 0-9 . _ . Типа хужэ не будет. В остальном -- описание application/x-www-form-urlencoded по ссылке, состоящее из двух пунктов, несложным английским языком описывает преобразования, которые надо провести над данными для передачи в URL. |
Автор: vadiml 28.12.2014, 19:38 |
Плюс надо передавать как %2B А сам + используется в GET для передачи строк с пробелами, чтобы строка не разрывалась. |
Автор: Pfailed 28.12.2014, 21:32 |
Ну и модуль URI::Escape для себя откройте |
Автор: tzirechnoy 29.12.2014, 14:10 | ||
Скорее -- чтобы её читать можно было. Поскольку пробел и так в списке reserved characters URI. Но без замены на ` ' на `+' была бы замена ` ' на `%20', и предложэния в URL были бы существенно менее читабельными. |