[Perl] Problème avec module Archive::Zip et UTF-8

Dominique Asselineau asseline at telecom-paristech.fr
Mer 10 Mai 17:43:32 CEST 2017


Bonjour,

J'utilise Perl sur Linux/Debian 8.8 (Jessie à jour).
 - perl: Version 5.20.2 
 - Archive::Zip: Version 1.39

Si j'ajoute dans l'archive zip un membre à partir d'une chaîne UTF-8
avec la méthode addString( $chaine, $nomDeMembre ), lorsqu'ensuite je
tente d'écrire cette archive à l'aide de la méthode writeToFileHandle,
dans un fichier temporaire produit par Archive::Zip::tempFile(),
j'obtiens l'erreur

Wide character in Compress::Raw::Zlib::crc32 at /usr/share/perl5/Archive/Zip.pm line 307.

Comme indiqué dans le man de Archive::Zip, à la section "Archive::Zip
Global Variables", je positionne la variable "local
$Archive::Zip::UNICODE = 1;" juste avant l'appel à la méthode
addString mais ça ne convient pas.

Je suppose que la variable $Archive::Zip::UNICODE = 1; devrait
permettre à addString d'encoder la chaîne Perl UTF-8 en octets qui ne
devraient pas poser problème lors de traitement suivant ?

J'ai mis un ECM en pj pour illustrer le problème que je rencontre,
et pour mettre en évidence l'erreur que je pourrais commettre.

Merci de votre aide.

Dominique


-- 
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: zipTemporary.pl
Type: application/octet-stream
Taille: 931 octets
Desc: non disponible
URL: <http://listes.mongueurs.net/mailman/private/perl/attachments/20170510/f0ac9711/attachment.obj>


Plus d'informations sur la liste de diffusion Perl