Alterar encoding de arquivos em massa

jmfp6beQuem trabalha com frequencia com a linguagem de programação php e recebe ou encontra códigos fonte implementados por outros usuários, geralmente enfrenta um problema: a codificação dos caracteres.

Tendo este tipo de problema, criei 4 snippets simples para mudança de codificação dos arquivos em massa.

Os comandos unix básicos utilizados são o file e o comando iconv respectivamente com os seguintes argumentos file -i filename (que mostra algumas informações como o tipo de codificação do arquivo) e o comando iconv infile -f iso-8859-1 -t utf8 -o outfile.

Por que 4? Bom, pensando em uma lógica melhor, alguém pode criar um apenas e que faça todas as análises necessárias antes da ação, mas vamos lá:

for i in $(find -name \*.php);
do
    iconv $i -f iso-8859-1 -t utf-8 -o $i;
done
for i in $(find -name \*.php);
do
   iconv $i -f us-ascii -t utf-8 -o $i; 
done
for i in $(ls)
do
    file -i $i | grep 'iso-8859-1' >> /dev/null

    if [ $? -eq 0 ]
        then
        iconv $i -f iso-8859-1 -t utf8 -o $i;
    fi
done
for i in $(ls)
do
    file -i $i | grep 'us-ascii' >>/dev/null

    if [ $? -eq 0 ]
       then
       iconv $i -f us-ascii -t utf8 -o $i
    fi
done

Bueno, é isso hoje.
Ps: Caso alguém queira fazer um script mais genérico e com opções de argumentos como entrada, será bem vindo.

Avatar de zrhans

Posted by

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Site criado com WordPress.com.

%d blogueiros gostam disto: