Как мне кодировать строки HTTP GET-запроса в Perl?

Просто добавьте класс notranslate class="notranslate", где вам нужно, и переводчик google не трогают его. https://cloud.google.com/translate/v2/faq#technical

13
задан Community 23 May 2017 в 12:08
поделиться

4 ответа

URI:: Escape делает то, что Вы хотите.

use URI::Escape;

sub escape_hash {
    my %hash = @_;
    my @pairs;
    for my $key (keys %hash) {
        push @pairs, join "=", map { uri_escape($_) } $key, $hash{$key};
    }
    return join "&", @pairs;
}
18
ответ дан Leon Timmermans 23 May 2017 в 12:08
поделиться
  • 1
    @depesz - Несомненно, но это сортирует всю строку, я спросил, как отсортировать выделенный текст. – drrlvn 25 August 2009 в 14:14

URI:: Escape является, вероятно, самым прямым ответом, поскольку другой дали, но я рекомендовал бы использовать объект URI для всей вещи. URI автоматически выходит из ПОЛУЧИТЬ параметров для Вас (использование URI:: Escape).

my $uri = URI->new( 'http://example.com' );
$uri->query_form(foo => '1 2', bar => 2);
print $uri; ## http://example.com?foo=1+2&bar=2

Как добавленная премия, LWP:: Simple добирается , функция возьмет объект URI, поскольку это - аргумент вместо строки.

26
ответ дан gpojd 23 May 2017 в 12:08
поделиться
  • 1
    @spatz: Сортировка части строки является скорее сложной как команды can' t берут диапазоны подстроки, но I' ve добавил пример того, как сделать это. – DrAl 25 August 2009 в 14:57

Используйте LWP:: UserAgent вместо этого:

use strict;
use warnings;

use LWP::UserAgent;

my %query_hash = (spam => 'eggs', foo => 'bar baz');

my $ua = LWP::UserAgent->new();
my $resp = $ua->get("http://www.foobar.com", %query_hash);

print $resp->content;

Это заботится о кодировании для Вас.

, Если Вы хотите более универсальное решение для кодирования, см. HTML:: Объекты .

РЕДАКТИРОВАНИЕ: URI:: Escape является лучшим выбором.

4
ответ дан Joe Casadonte 23 May 2017 в 12:08
поделиться

URI:: Escape является модулем, о котором Вы, вероятно, думаете.

2
ответ дан Josh 23 May 2017 в 12:08
поделиться
  • 1
    Как @spatz упомянутый в комментарии для ответа от @Al, это сортирует целую строку, не выбор на строке. – technomalogical 25 August 2009 в 14:44
Другие вопросы по тегам:

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