Проблема с кодировками

  • Автор темы Автор темы LumovAn
  • Дата начала Дата начала
L

LumovAn

Имеется следующая процедура на Perl:

Код:
sub up_file {
my ($api, $name, $url, $sum, $reupload) = @_;

my $res = $api->api({
action => 'query',
prop => 'info',
titles => $name
}) || return $api->{error}->{details};
my $missing = exists((values %{$res->{query}->{pages}})[0]->{missing});
my $ua = LWP::UserAgent->new( timeout => 25 );
my $response = $ua->get($url);
$response = $response->decoded_content if($response->is_success());

if((!$missing && $reupload) || $missing) {
$api->edit({
action => 'upload',
filename => $name,
comment => $sum,
text => $sum,
file => $response,
ignorewarnings => 1
}) || return 'Error with upload file ' . $name . ': ' . $api->{error}->{details};
return 'done';
}
return 'File ' . $name . ' exist and $reupload is undefined';
}

Переменные: $api -> объект MediaWiki::API, вызываемый из основной программы, $name -> название файла в формате MediaWiki, $url -> адрес файла для получения его содержимого, $sum -> описание файла для системы контроля версий, $reupload -> если определено, позволяет перезаписывать имеющийся файл.

При вызове процедуры отдает: "HTTP::Message content must be bytes at /usr/local/share/perl/5.10.0/HTTP/Request/Common.pm line 91".

Как это можно исправить?
 
возможно нужно декодировать:
Код:
use Encode;

Encode::encode( 'utf8', $text);

вообще-то, надо смотреть
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab