Convertir les caractères latin1 en utf-8

alain Adelmar
aadelmar@numericable.fr beuuh c est quoi ca

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
Il vous placera le contenu de foo en utf8 dans foo_utf8.log Si foo est un repértoire contenant text.txt et page.html, il placera le contenu de foo dans le repértoire courant sous les noms text_utf8.txt et page_utf8.html.
Voila, maintenant j'ai écris des scripts qui prennent en compte la convertion de latin1 vers utf8, il suffit juste de placer l'option -l dans morrowind, dof, dor, etc... Pour une ligne de code je pouvais, l'integrer dans d'autre script qui font bien plus de chose que la convertion codage. alain


  #!/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;