2009-03-27 7 views

Répondre

19

Ubuntu a recode

$ sudo apt-get install recode 
$ recode UTF-8..latin1 *.php 

récursive, grâce à Ted Dziuba:

$ find . -name "*.php" -exec recode UTF-8..latin1 {} \; 
+1

Recode est un programme Linux assez standard - pas standard, il est toujours installé par défaut, mais il devrait être disponible sur toutes les distributions, pas seulement Ubuntu. –

+0

comment puis-je faire cela récursif? – Svish

+0

Récursivement, c'est trouver. -name "* .php" -exec recode UTF-8..latin1 {} \; –

9

Je pense que iconv est votre réponse ...

Form homme iconv:

 
    NAME 
     iconv - Convert encoding of given files from one encoding to another 

    SYNOPSIS 
     iconv -f encoding -t encoding inputfile 

    DESCRIPTION 
     The iconv program converts the encoding of characters in inputfile from one coded 
     character set to another. The result is written to standard output unless otherwise 
     specified by the --output option. 

     ..... 

Vous pourriez probablement faire une

find $my_base_dir -name "*.php" -o -name "*.html" -exec sh -c "(\ 
    iconv -t ISO88592 -f UTF8 {} -o {}.iconv ; \ 
    mv {}.iconv {} ; \ 
)" \; 

Cela récursive trouver les fichiers nommés et correctement les ré-encoder (le fichier temporaire est nécessaire, car iconv tronquera la sortie avant de commencer à travailler).