обновился модуль
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);
?>
тоже не работает
ПОДСКАЖИТЕ
в чем может быть проблемма ??
такое впечатление, что перл меня не слушает ((
или я его )
зарание спасибо за ответы