Le script lat2utf8.pl sert à convertir des fichiers d'un
repèrtoire, ou un seul fichier codé en latin1, en fichier codé
utf8, suivant que vous entrez un nom de repèrtoire ou un nom de fichier en guise d'argument.
Il ce sert de iconv et nomme le ou les fichiers de sortie en foo_utf8.ext.
usage:
lat2utf8.pl [rep ou file]Si vous entrez: lat2utf8.pl foo.log
#!/usr/bin/perl -w # remd: essai de passation de valeur dans un appel systeme.alain Adelmar # ca marche c'est enorme - avec un fichier simple ca marche use Cwd; my $dir= cwd; my $lx = "x" x 20; my $fichier = my $file = my $fout = my $resp = ""; my $moi = "alain Adelmar"; # traitement argument - fichier a traiter et verif validité if (@ARGV) { if(-d $ARGV[0]) { opendir RS, "$ARGV[0]" or die "Ouverture de $ARGV[0] impossible $!"; @files = (sort readdir RS); foreach $fichier(@files) { next if (-d $fichier); next if ($fichier =~ /^\.{1,2}/); $file = "$ARGV[0]\/$fichier"; &traitefile; } closedir RS || die "Fermeture de $ARGV[0] impossible $!"; } elsif(-f $ARGV[0]) { $file = $ARGV[0]; &traitefile; } else { print "erreur de casting: usage:\tlat2utf8.pl nom_de_fichier_ou_de_repertoire\n"; } } print "normalement fichier traiter, bonjour\nalain Adelmar\n"; sub traitefile { print "fichier $file traité\n"; ($rootfile, $ext)= split(/\./, $file); $fileout = "$rootfile" . "_utf8\." . "$ext"; system("iconv -f latin1 -t utf8 -o $fileout $file") || print "pas possible de convertir\n"; # écrir quelque chose pour pouvoir entrer dans le fichier et remplacer iso-xxx ou latin1 par utf8 } END;