[update]
Esse tópico recebeu uma
versão atualizada. Embora esse aqui continue correto e completamente funcional. A
versão atualizada contém mais informações e agrega o conteúdo gerado pelos comentários desse tópico até a data de publicação daquele tópico.
[/update]
Recentemente tive alguns problemas com codificação de alguns arquivos e do próprio sistema (algumas coisas ainda não resolvidas, mas isso é outro assunto!).
O fato é que tive que fazer uma pesquisa sobre como converter um tipo de arquivo em outro. O que me impressionou não foi a dificuldade de achar uma solução, mas a complexidade de algumas soluções que eu encontrei. Pensei que certamente tal complexidade não seria necessária e estava certo !
Encontrei uma dica no rodapé do site das
FunçõesZZ ensinando justamente como converter o arquivo das FunçõesZZ, que é escrito em ISO-8859-1, em UTF-8.
O comando é muito simples:
iconvFaz parte da libc6, ou seja, todo mundo têm instalado, e possuí sintaxe simples.
iconv -f codificacao_de_origem -t codificacao_de_saida arquivo
Assim para converter UTF-8 para ISO-8859-1 temos:
iconv -f utf-8 -t iso-8859-1 arquivo
Para o contrário utilizamos:
iconv -f iso-8859-1 -t utf-8 arquivo
É necessário redirecionar a saida de arquivo para algum lugar, algo como:
iconv -f utf-8 -t iso-8859-1 arquivo > novo_arquivo
Sendo assim, eu acrescentei ao meu ~/.bashrc* as seguintes linhas
alias iso2utf='iconv -f iso-8859-1 -t utf-8'
alias utf2iso='iconv -f utf-8 -t iso-8859-1'
Agora quando eu quiser converter um tipo de arquivo em outro, eu só preciso usar o
iso2utf ou o
utf2isoAgora, por que tanta desinformação sobre assunto ? É tão fácil converter um tipo em outro, é tão simples !
[update]O
Marcelo Oliveira escreveu um belo script para fazer a conversão em lote e o colocou aqui,
nos comentários.
O script apresenta o cuidado de não modificar seus arquivos originais, produzindo uma cópia dos mesmos em outros diretórios. Modificar o comportamento do script para converter arquivo iso-8859 para utf-8 é trivial (pelo menos para quem leu o tópico até aqui). Um detalhe importante é que o script não suporta caminhos ou nomes que contenham espaços (
Posso estar enganado, mas o Marcelo deve ter utilizado esse script em um diretório de dados para internet onde espaços não são comuns e arquivos de imagem são.).
Marcelo, eu e a galera agradecemos a iniciativa e a colaboração![/update]