다음 코드와 함께 'LWP :: UserAgent '를 사용하여 인코딩 된 웹 사이트'ISO-8859-1 '을 검색하고 있습니다.LWP :: UserAgent를 사용하여 ISO-8859-1로 인코딩 된 웹 사이트를 검색하는 올바른 방법은 무엇입니까?
특수 문자가 올바르게 표시되지 않아서 특히 "€"기호가 잘못 표시되는 것이 문제입니다.
콘텐츠 인코딩이 'ISO-8859-1'로 인식됩니다.
검색된 텍스트를 표시하려면 파일에 저장하고 Notepag ++로 엽니 다.
질문 : 올바른 방법으로 'ISO-8859-1 '로 인코딩 된 특수 문자를 검색하려면 어떻게해야합니까?
#SENDING REQUEST
my $ua = LWP::UserAgent->new();
$ua->agent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1'); # pretend we are very capable browser
my $req = HTTP::Request->new(GET => $url);
#add some header fields
$req->header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
$req->header('Accept-Language', 'en;q=0.5');
$req->header('Connection', 'keep-alive');
$req->header('Host', 'www.url.com');
#SEND
my $response = $ua->request($req);
#decode trial1
print $response->content_charset(); # gives ISO-8859-1 which is right
my $content = $response->decoded_content(); #special chars are displayed wrong
#decode trial2
my $decContent = decode('ISO-8859-1', $response->content());
my $utf8Content = encode('utf-8', $decContent); #special char € is displayed as Â
#decode trial3
Encode::from_to($content, 'iso-8859-1', 'utf8'); #special char € is displayed as  too
#example on writing data to file
open(MYOUTFILE, ">>D:\\encodingperl.html"); #open for write, overwrite
print MYOUTFILE "$utf8Content"; #write text
close(MYOUTFILE);
당신은 출력 핸들을 binmoding으로 UTF8로 출력 인코딩을 설정하는 것을 잊었다 사용합니다. – tchrist