проблема с юникодом

Discussion in 'PHP' started by amorphius, 5 May 2009.

  1. amorphius

    amorphius New Member

    Joined:
    22 Jan 2009
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    есть такой код
    Code:
    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";
    проблема в том, что строка, которую мы считали из базы, выведется иероглифами, зато если написать
    Code:
    print "Русская строка из базы данных: ";
    print $a;
    то все работает.
    Кто знает в чем проблема?
     
    #1 amorphius, 5 May 2009
    Last edited: 5 May 2009
  2. demond

    demond Member

    Joined:
    5 Nov 2008
    Messages:
    101
    Likes Received:
    22
    Reputations:
    5
    А в базе у тебя точно в utf-8? а вообще с utf в perl надо быть очень осторожным. на YAPC::Russia в прошлом году была целая лекция: http://event.perlrussia.ru/yr2008/talk/1173
     
  3. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Надо посмотреть, в какой кодировке таблица
    SHOW CREATE TABLE a;
    и в какой там данные
     
  4. amorphius

    amorphius New Member

    Joined:
    22 Jan 2009
    Messages:
    19
    Likes Received:
    0
    Reputations:
    0
    все, все, все в базе установлено в utf8