UTF8 et Perl

Je ne suis vraiment pas doué avec UTF8 et Perl. Un coup ça marche, un coup non… Des années que je perds des heures à essayer des trucs différents.

Là j’ai un résultat qui a l’air de marcher, jusqu’à la prochaine fois :

#!/usr/bin/perl -w

use DBI;
use Encode;
use utf8;
use open ':utf8'; 
binmode STDOUT, ":utf8"; 

my $dbh = DBI->connect("DBI:Pg:dbname=madb;host=localhost","monuser","motdepasse") ;
$dbh->prepare("SET NAMES 'utf8'")->execute;
$dbh->{pg_enable_utf8}=1;

Sinon, un truc idiot pour être sûr qu’on produit bien de l’UTF8 :

perl monscript.pl >x && file x
x: UTF-8 Unicode text

Un truc à ne pas oublier (issu de la bible) :

When you encode, the resulting UTF8 flag is always off.

When you decode, the resulting UTF8 flag is on–unless you can unambiguously represent data.