iconv - Convertendo a codificação de arquivos no GNU/Linux
Dica publicada em Linux / Miscelânea
iconv - Convertendo a codificação de arquivos no GNU/Linux
Por padrão, quando um arquivo de texto é criado no GNU/Linux, ele terá a codificação UTF-8.
Ocorre, porém, que se o arquivo de texto for criado no Microsoft Windows, ele terá a codificação ISO-8859-1.
A exceção existe quando se tratar de um arquivo que não contenha qualquer caractere especial, como um caractere acentuado, ou uma cedilha "ç", por exemplo. Neste caso, em ambas as plataformas, o arquivo será criado com a codificação ASCII.
Arquivos criados com o Vim:
file -i arq_linux*
file -i arq_win*
Exemplo:
echo "Suíça" > arq1.txt
file -i arq1.txt
file -i arq*
iconv --list
Para maiores informações, consulte:
man iconv
Ocorre, porém, que se o arquivo de texto for criado no Microsoft Windows, ele terá a codificação ISO-8859-1.
A exceção existe quando se tratar de um arquivo que não contenha qualquer caractere especial, como um caractere acentuado, ou uma cedilha "ç", por exemplo. Neste caso, em ambas as plataformas, o arquivo será criado com a codificação ASCII.
Arquivos criados com o Vim:
file -i arq_linux*
arq_linux_esp.txt: text/plain; charset=utf-8Arquivos criados com o Microsoft Notepad:
arq_linux.txt: text/plain; charset=us-ascii
file -i arq_win*
arq_win_esp.txt: text/plain; charset=iso-8859-1Quase todos os editores de texto atuais reconhecem arquivos com codificação diferente do padrão e fazem a conversão de forma transparente, mas caso aconteça alguma incompatibilidade, podemos fazer uso do comando iconv, para alterar a codificação de um determinado arquivo.
arq_win.txt: text/plain; charset=us-ascii
Exemplo:
echo "Suíça" > arq1.txt
file -i arq1.txt
arq1.txt: text/plain; charset=utf-8iconv arq1.txt --to-code ISO-8859-1 > arq2.txt
file -i arq*
arq1.txt: text/plain; charset=utf-8Para listar os tipos de codificação suportados:
arq2.txt: text/plain; charset=iso-8859-1
iconv --list
Para maiores informações, consulte:
man iconv