PDA

Просмотр полной версии : проблема с юникодом


amorphius
05.05.2009, 10:17
есть такой код
use strict;
use utf8;
use DBI;
....
my $dbh = DBI->connect....
$dbh->do("set names utf8");
$sth = $dbh->prepare("select a from b where c=1");
$sth->execute;
$a = $sth->fetchrow_array();
print "Русская строка из базы данных: $a";
проблема в том, что строка, которую мы считали из базы, выведется иероглифами, зато если написать
print "Русская строка из базы данных: ";
print $a;
то все работает.
Кто знает в чем проблема?

demond
05.05.2009, 10:47
А в базе у тебя точно в utf-8? а вообще с utf в perl надо быть очень осторожным. на YAPC::Russia в прошлом году была целая лекция: http://event.perlrussia.ru/yr2008/talk/1173

krypt3r
05.05.2009, 12:29
Надо посмотреть, в какой кодировке таблица
SHOW CREATE TABLE a;
и в какой там данные

amorphius
05.05.2009, 23:00
все, все, все в базе установлено в utf8