Я пытаюсь использовать модуль Perl XML :: RAI для текста в кодировке UTF8, и у меня все еще есть ошибка, которую я не совсем понимаю ... вот код (он пока не должен делать ничего полезного):
use HTTP::Request;
use LWP::UserAgent;
use XML::RAI;
use Encode;
my $ua = LWP::UserAgent->new;
sub readFromWeb{
my $address = shift;
my $request = HTTP::Request->new( GET => $address );
my $response = $ua->request( $request );
return unless $response->code == 200;
return decode("utf8", $response->content());
}
sub readFromRSS{
my $address=shift;
my $content = readFromWeb $address;
my $rai = XML::RAI->parse_string($content);
#this line "causes" the error
}
readFromRSS("http://aktualne.centrum.cz/export/rss-hp.phtml");
#I am testing it on this particular RSS
ошибка:
Cannot decode string with wide characters at /usr/lib/perl5/5.8.8/i686-linux/Encode.pm line 166.
Понятия не имею, виновата ли это моя вина или ошибка XML :: RAI. Я не вижу, где могут быть эти широкие символы, если $ content уже декодирован из utf8 ...
edit: по какой-то причине я до сих пор не понимаю, удаление части "decode" фактически решило проблему.