2009-03-27 5 views

risposta

19

Ubuntu ha recode

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

ricorsivo, grazie alla Ted Dziuba:

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

Recode è un programma abbastanza standard di Linux - non così standard che è sempre installato per impostazione predefinita, ma dovrebbe essere disponibile su tutte le distribuzioni, non solo Ubuntu. –

+0

come posso fare questo ricorsivo? – Svish

+0

In modo ricorsivo, è trovare. -name "* .php" -exec recode UTF-8..latin1 {} \; –

9

Credo iconv è la vostra risposta ...

Modulo uomo 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. 

     ..... 

Così si potrebbe probabilmente fare un

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

Ciò ricorsivamente trovare i file denominati in modo appropriato e ricodificarli (il file temporaneo è necessario, poiché iconv troncerà l'output prima di iniziare a lavorare).