Bonjour j'ai un gros problème avec l'utf-8 depuis que je suis passé a perl 5.8.8, je stocke dans une base de données du texte que j'encode en utf-8

voici mon script de teste

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#!G:/PROGRA~1/Perl/bin/perl.exe -w
use DBI;
use Encode;
use LWP::Simple;
require HTML::TreeBuilder;
require HTML::FormatText;
 
my $data = get("<a href="http://www.xys.org/pages/luxun.html" target="_blank">http://www.xys.org/pages/luxun.html</a>");
my $tree = HTML::TreeBuilder->new;
   $tree->parse($data);
my $formatter = HTML::FormatText->new;
  $data = $formatter->format($tree);
 
my $DSN = 'driver={SQL Server};Server=VISTA\MSSQL; database=test; uid=sa;pwd=2658;';
my $dbh = DBI->connect("dbi:ODBC:$DSN", { odbc_cursortype => DBI::SQL_CURSOR_DYNAMIC, AutoCommit => 0 } );
 
$data = encode("utf8", $data);
my $i = $dbh->prepare("insert into utf(texte) values(?)");
   $i->execute($data);
voici ma table sous ms sql server

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
create table utf (
  id int identity(1,1),
  texte ntext not null,
)
Avec mon ancièenne version de perl les caractères encoder grace aux modules Encode etait insérié comme il le fallait dans sql serveur et il suffisait de faire ceci pour s'en rendre compte

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
#!G:/PROGRA~1/Perl/bin/perl.exe -w
use DBI;
my $DSN = 'driver={SQL Server};Server=VISTA\MSSQL; database=test; uid=sa;pwd=2658;';
my $dbh = DBI->connect("dbi:ODBC:$DSN", { odbc_cursortype => DBI::SQL_CURSOR_DYNAMIC, AutoCommit => 0 } );
   $dbh->{LongReadLen} = 100000000;
   $dbh->{LongTruncOk} = 1;
my $i = $dbh->prepare("select * from utf");
   $i->execute;
 
 
 
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n";
print "</head>\n";
print "<body>\n";
while(my $rows = $i->fetchrow_hashref()) {
  print "==========================================\n";
  print "$rows->{'texte'}\n";
  print "==========================================\n";
}
print "</body>\n";
print "</html>\n";
seulement sous perl 5.8 les caractères sorte mal , ils ne sont pas "normaux" voici deux petit screenshot le probème est flagrant






Quelqu'un aurait'il un début de réponse parce que je vais bientot péter un boulon la dessus