2
ASCII가 아닌 문자가있는 URL을 요청하려고합니다. 예 : http://perry.wikia.com/wiki/Página_principalá
기호가 있습니다.Perl과 utf-8 URI (일부 ASCII 문자가 아닌)로 HTTP 요청을 보내면 404 Not Found 오류가 발생합니다.
나는 LWP :: 해당 UserAgent와 함께 해봤지만 404 찾을 수 없음 오류가 발생합니다 :
#!/usr/bin/perl
use utf8;
use HTTP::Tiny;
use Encode qw(decode encode);
my $url = 'http://perry.wikia.com/wiki/Página_principal';
#~ my $url = encode('UTF-8','http://perry.wikia.com/wiki/Página_principal'); # doesn't work either
my $response = HTTP::Tiny->new->get($url);
if ($response->{success}) {
my $html = $response->{content};
} else {
die "Unexpected error requesting $url : " . $response->{status};
}
당신은 URI 인코딩을 소홀히했습니다. 'http : // perry.wikia.com/wiki/P % C3 % A1gina_principal'은 실제로 얻고 자하는 것입니다. – tjd
[URI :: Encode] (https://metacpan.org/pod/URI::Encode) 또는 [URI :: Escape] (https://metacpan.org/pod/URI::Escape)를 확인하십시오 – tjd
I 언급하는 것을 잊어 버렸습니다. URI를 이스케이프하기 위해 URI :: Escape를 사용하려고했으나 작동하지 않습니다. 동일한 404 오류를 반환합니다. 실제로 이미 인코딩 된 URI에 대한 요청을하려고하면 http://perry.wikia.com/wiki/P%C3%A1gina_principal이 작동하지 않습니다./ – Akronix