Почему строка Unicode не извлекается из регистра Sybase в Perl как Unicode? - PullRequest
1 голос
/ 26 июня 2019

У меня есть строка в столбце VARCHAR () в таблице в базе данных Sybase, которая содержит символы Unicode.

Когда я пытаюсь получить эту строку, она возвращается, НО флаг UTF8 неустановить на него

my $sql = qq[select x from my_table where id=something];
my $sth = $dbHdl->prepare($sql);
eval { $results = $sth->execute() };
$cols = $sth->{NAME};
$results = $sth->fetchall_arrayref({});

Когда я печатаю результаты $ из приведенного выше кода, он печатает правильный символ Unicode:

  DB<4> x $results
0  ARRAY(0x93b02c0)
   0  HASH(0xbcf3700)
      'x' => 'Prefix € Suffix'

Однако, проверка, является ли этоСтрока UTF8, возвращает false:

  DB<8> x Encode::is_utf8($results->[0]->{x})
0  ''

В качестве дополнительной проверки вызов length() показывает 17 вместо 15, как будет отображаться строка Unicode.

Что я делаю неправильно?Нужно ли как-то изменить строку подключения?

...