Pessoal, acredito que todos vocês já tiveram a experiência de receber um arquivo criado no "outro" SO, cujo nome apresenta caracteres substituídos por "???" e acrescido do "sobrenome" "(codificação inválida)".
Bom, uns já falaram em renomear um a um os arquivos, outros falam para mudar o
CHARSET completo do sistema (Exe.: padrão no
Ubuntu é utf8, aí você muda para iso8859-1, ou cp1252 ou cp850 ou ou ou ou ou...).
Eu pessoalmente acho mais fácil renomear os arquivos problemáticos e "pau no gato".
Mas é cansativo e trabalhoso.
Encontrei, meio que por acaso, um software muito bacana, chamado "convmv". O que ele faz? Troca o charset do nome do arquivo problemático, renomeando-o de acordo com as diretrizes da linha de comando, referentes ao sistema em questão.
Em um sistema Ubuntu, para obtê-lo, basta executar:
sudo apt-get install convmv
Para usar, abra um terminal e dispare:
find . | while read i; do convmv -f cp850 -t utf8 --notest $i; done
No caso, estou convertendo de cp850 (código padrão do DOS/Windows, apesar que neste último costuma ser também cp1252) para utf8 (que é o padrão do Ubuntu, apesar de algumas pessoas usarem o iso8859-1).
Bônus
Como os usuários de Windows (e alguns de
Linux!) tem o mau costume de deixar espaços nos nomes de arquivo, aproveite a ocasião e renomeie tudo em lote:
find . | while read i; do nomebom=`echo $i | tr ' ' '_'`; mv "$i" $nomebom; done
Você pode colocar estes comandos em um arquivo texto e torná-lo um script executável.
Até a próxima!