use LWP::UserAgent; use XML::Simple; use Encode qw(encode decode); use warnings; use strict; ... my $content; my $ua = LWP::UserAgent->new; my $request = HTTP::Request->new("GET",$url); unless ($skipAuth){ $request->authorization_basic($user, $pass); } $ua->prepare_request($request); my $response = $ua->send_request($request); if ($pageFormat eq "xml"){ $content = XMLin($response->decoded_content((charset => "utf8"))); } else { #txt $content = $response->decoded_content((charset => "utf8")); #Prints UTF-8 as expected. print "CONTENT CHARSET " . $response->content_charset() . "\n\n"; #All of the below statements print the BOM as literal characters to the Windows CMD screen print "CONTENT: " . $response->content() . "\n"; print "DECODED CONTENT: " . $response->decoded_content() . "\n"; print "DECODED CONTENT WITH UTF-8 SPECIFIED: " . $response->decoded_content((charset => "utf8")) . "\n"; print "MANUALLY DECODED: " . decode("UTF-8", $response->content()); } #### open(RESULT, ">result.txt"); print RESULT $content; close(RESULT);