LINUX.ORG.RU

perl, xls, russian text


0

0

обновился модуль 
use Spreadsheet::ParseExcel; (для чтения xls фалов)

теперь польностью отвалилась кодировка для товаров с русскими символами

допустим, прочитали ячейку с имянем

$name = $sheet ->{Cells}[$x][$y]->Value;
print 'readcell line='.$line.' x='.$x.' y='.$y.' value='.$celval."\n ";
        $celval =~ s/^\s+//;
        $celval =~ s/\s+$//;

print 'is utf8 ? '.Encode::is_utf8($name); // возвращает 1

выполняю скрипт через броузер

код :

$dbh->query('set names utf8');

$res = $dbh -> selectrow_array("select id from goods sname=".$dbh->quote($name));

$res - undef, хотя такой товар есть

print $name; // возрвашает ?????-????-???

выполняю скрипт через консоль
bash# perl parse.pl > result

тот же код

$dbh->query('set names utf8');

$res = $dbh -> selectrow_array("select id from goods sname=".$dbh->quote($name));

bash# cat resutl 
$res = 83
print $name; // возрвашает ?????-????-???


пробывал 
$name = decode($name, 'cp1251')
$name = decode($name, 'utf8')
как советуют в  http://linuxforum.ru/index.php?showtopic=60471&mode=linear

и еще заметил такой факт, все равно 
запрос $dbh->query('set names utf8');
меняю на $dbh->query('set names cp1251'); 
эффект остаеться таким же - рабоатет в консоле, не рабоатет если запускать скрипт через браузер

пробывал изврящаться, типа php код
<?
     system('perl parse.pl', $output);
?>

тоже не работает 

ПОДСКАЖИТЕ
в чем может быть проблемма ??

такое впечатление, что перл меня не слушает ((
или я его )

зарание спасибо за ответы

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.