Voici un script PHP permettant la conversion de l'encodage des fichiers vers UTF-8. J'avais un besoin particulier, alors je l'ai réalisé en PHP.
Il export un projet du référentiel svn dans un dossier, et place les fichiers converti dans un dossier avec un suffixe ".utf8".
#!/usr/bin/php <?php function recursive_readdir ($dir) { global $dir_in, $dir_out; $dir = rtrim ($dir, '/'); if (is_dir ($dir)) $dh = opendir ($dir); else { echo $dir, ' n\'est pas un repertoire valide'; exit; } while (($file = readdir ($dh)) !== false ) { if ($file !== '.' && $file !== '..') { $path =$dir.'/'.$file; $path_out = str_replace($dir_in, $dir_out, $path); if (is_dir ($path)) { if(!file_exists($path_out)) mkdir($path_out); recursive_readdir ($path); } else{ $encoding = exec("file -b --mime-encoding $path"); if($encoding=='iso-8859-1') { $cmd = "iconv -o $path_out -f ISO8859-1 -t UTF-8 $path"; } elseif($encoding=='us-ascii') { $cmd = "iconv -o $path_out -f US-ASCII -t UTF-8 $path"; }else{ $cmd = "cp $path $path_out"; } echo $cmd, "\n"; passthru($cmd); } } } closedir ($dh); } //=> Début du programme $dir_in = '/home/chemin/vers/dossier'; $dir_out = '/home/chemin/vers/dossier.utf8'; exec("svn export file:///svn/projet/trunk $dir_in/"); if(!file_exists($dir_in)) exit; if(!file_exists($dir_out)) mkdir($dir_out); recursive_readdir ($dir_in);