如何从Perl中的SQLSERVER表读取特殊字符?

时间:2019-05-17 23:43:12

标签: sql-server perl utf-8 character-encoding iso-8859-1

使用perl,我试图从具有默认字符集= Latin1_General_CI_AS的SQLSERVER数据库中读取一些记录

这些记录具有一些特殊字符(例如:àèìòù)

当我提取这些记录时,perl输出不会显示这些特殊字符。

我尝试了编码/解码功能,但没有成功...

use DBI;
# DBD::ADO 
$dsn = "Provider=sqloledb;Trusted Connection=yes;"; 
$dsn .= "Server=$host;Database=$database"; 
my $dbh = DBI->connect("dbi:ADO:$dsn",  $user,  $auth, 
 { RaiseError => 1, AutoCommit => 1} 
 ) || die "Database connection not made: $DBI::errstr";

$sql = "select idnews, titolo from news where idnews>$ultimoidinserito";

 $sth = $dbh->prepare($sql);
 $sth->execute
 or die "SQL Error: $DBI::errstr\n";
  while(@row = $sth->fetchrow_array) 
  {
    $titolo=lc($row[1]);
    $idnews=$row[0];
        print "$titolo\n";
 }

预期的一些记录:

欧锦赛决赛CSKA-Efes

Futuro Allegri ecco dovepuòandare

获得的结果

欧洲大结局CSKA-Efes

Futuro Allegri ecco dovepu≥andare

1 个答案:

答案 0 :(得分:0)

my $reportJson = to_json($data,{ pretty => 1})

使用perl“ pretty”,一切看起来都很好。