У меня есть скрипт Perl, работающий в UNIX, который использует DBI для подключения и получения данных из базы данных SQL Server. Сценарий выглядит следующим образом:
$dbh = DBI->connect("dbi:Sybase:server=$connect;charset=UTF-8", $login, $password) or die("Couldn't connect to $connect as $login/$password:
$DBI::errstr");
$sql = "use mydb";
$sth = $dbh->prepare($sql);
$sth->execute or die("execute failed");
$sth->finish;
$sql = "MyProc \@DATE='1/1/2008'";
$sth = $dbh->prepare($sql);
$sth->execute or die("execute failed");
while (($body) = $sth->fetchrow()) {
print "$body\n";
}
$sth->finish;
$dbh->disconnect if $dbh;
Переменная body извлекает данные из столбца, который является NVARCHAR и содержит символы не ASCII. Запрос работает нормально, но оператор print выплевывает ????? когда он встречает не-ASCII символ. В DBI-> connect я даже указываю набор символов, но не повезло.
Есть мысли о том, как заставить это работать?