Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Cannot decode string with wide characters perl


Автор: izver84 28.1.2019, 13:12
Добрый день.

Програма переносит данные из PostgreSQL в DBF.
Код

my $sel = "SELECT  cenao,cenas,dato,....,nvpr,vesb FROM proddatvire ";

$sth = $dbh->prepare($sel);
$rv = $sth->execute();

@st=();
while (  @row = $sth->fetchrow_array)
{
 foreach $st(@row)
{push(@st,$st."\t");}


$qw="Insert into lp (cenao,cenas,dato,..,rvpr,vesb) 
values($st[-18],$st[-17],'$st[-16]','..,$st[-3],'$st[-2]',$st[-1])";
Encode::from_to ($qw, 'utf8', 'cp866');
my $sel_csr = $xbase_dbh->prepare($qw);
$sel_csr->execute();
}

Есть два компьютера 
На первом стоит 
Код

DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17
DISTRIB_CODENAME=qiana
DISTRIB_DESCRIPTION="Linux Mint 17 Qiana"
Графическая оболочка (рабочий стол) Gnome


На втором
Код

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.5 LTS"
Графическая оболочка (рабочий стол) XFCE



Так вот. 
На первой скрипт работает без проблем. 
На втором выдаёт ошибку

Код

Cannot decode string with wide characters at /usr/lib/x86_64-linux-gnu/perl/5.22/Encode.pm line 221.


В чем  проблема? 

Автор: alezzz 28.1.2019, 15:29
попробуй use utf8; вначале или Encode::_utf8_off($qw); перед Encode::from_to

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)