Просто добавьте класс notranslate class="notranslate"
, где вам нужно, и переводчик google не трогают его. https://cloud.google.com/translate/v2/faq#technical
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;
}
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, поскольку это - аргумент вместо строки.
Используйте 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 является лучшим выбором.
URI:: Escape является модулем, о котором Вы, вероятно, думаете.