| Re: Problème de transmission de fichier & d'encodage (CGI) |
|
 |
|
 |
|
 |
|
 |
Group: fr.comp.lang.perl · Group Profile
Author: Paul GaboritPaul Gaborit Date: Apr 9, 2008 00:41
À (at) Tue, 08 Apr 2008 17:47:12 +0200,
paul POULAIN écrivait (wrote):
> J'ai un script Perl qui permet de transmettre (via apache) un fichier au
> format iso2709. (C'est un format semi-binaire de bibliothécaire : des trucs
> en clair et des trucs en binaire)
>
> Si je fais :
> my $query = new CGI;
> print $query->header( -type => 'application/octet-stream',
> -charset => 'utf-8',
> -attachment=>$filename);
Ok. Donc le navigateur a l'autre bout se dira que le document est en
'utf-8' (je ne suis pas certain que cela ait une importance quelconque
pour le type 'application/octet-stream'... mais peu importe).
> print $record->as_usmarc();
> et ben mon fichier il arrive daubé, et tous les caractères accentués en utf8
> sont transformés en latin1
Normal : la sortie standard (STDOUT) n'est certainement pas configurée
pour produire de l'UTF-8.
> Alors que la commande :
>
> open (FILE,">:utf8","/home/paul/Desktop/test.mrc");
> print FILE $record->as_usmarc();
> me donne un fichier correct.
Normal.
>
> Si quelqu'un a une piste, je cherche depuis 2H et je sèche complet...
Il suffit d'indiquer à Perl que STDOUT est en UTF-8 :
binmode STDOUT, ":utf8";
|