Por exemplo, ao salvar o nome de um arquivo usando acentuação o cedilha no Gimp ou no Firefox, a acentuação se perde e fica
bagunçada no ambiente do Kde, isto ocorre porque os aplicativos baseados no GTK2 usam a codificação UTF-8 enquanto o resto do sistema usa ISO8859-1, para manter compatibilidade com os padrões brasileiros (diga-se Windows).
Bom, como no meu caso não me interessa muito esta compatibilidade, e posso o usar o Kwrite para salvar algum arquivo em ISO8859, caso necessite, resolvi unificar a codificação do meu Kurumin em UTF-8 que é o padrão da maioria das distros Linux da atualidade.
Se você também acha que vale a pena fazer esta alteração, a receita não é complicada:
1º mude o locale, como root use o comando:
localedef -i pt_BR -f UTF-8 pt_BR.utf8
2º altere o arquivo /etc/environment
ficando assim:
LC_ALL=pt_BR.UTF-8
LANGUAGE=pt_BR.UTF-8
LC_MESSAGES=pt_BR.UTF-8
GTK_IM_MODULE=xim
LANG=pt_BR.UTF-8
reinicie o servidor gráfico (pode ser com um CTRL+ALT+Backspace) e seu sistema está em UTF-8.
3º Arrume os arquivos antigos
Agora é preciso renomear os arquivos antigos que eram acentuados ou tinham cedilha, pois o UTF-8 não reconhece a acentuação ISO8859-1.
Se o problema é só no nome dos arquivos ou diretórios dá para fazer todos de uma vez com o convmv.
Estando como root use o comando:
apt-get install convmv
o comando para renomear um diretório inteiro, recursivamente é:
convmv -f iso8859-1 -t utf8 -r --notest nome_do_diretorio
Já no caso de problemas de acentuação dentro dos arquivos. Podemos usar o recode para corrigir isto:
como root instale o recode com os comandos (estando conectado na internet, é claro):
apt-get install recode
o comando para o recode é:
recode iso8859-1..utf-8 nomedoarquivo
Para alterar a codificação de todos os arquivos de um diretório como, por exemplo, os scrips do Morimoto que estão em /usr/local/bin, você pode usar o script abaixo:
#!/bin/bash
# comando do script:
# iso2utf.sh diretorio
#script escrito por FranciscoLima faclsp@gmail.com
#verifica se o recode está instalado
if test -e /usr/bin/recode
then > /dev/null
else echo -e "\nATENÇÃO: Este script necessita do Recode instalado."
echo -e "Use \"#apt-get install recode\" para instalá-lo\n"
exit 2
fi
# testa se foi indicado um parâmetro
if [ $# -eq 0 ]
then
echo "ERRO: especifique o nome da pasta com os arquivos a serem convertidos!"
exit 1
fi
# faz uma cópia do diretório. Só por segurança
echo -e "\nCopiando diretório $1 para $1-becape, só por segurança\n"
cp -r $1 $1-becape
# acessa diretório com os arquivos a serem convertidos
cd $1
# cria lista de todos os arquivos que serão convertidos
lista=`find -type f`
# executa conversão
for i in $lista
do
echo "convertendo... $i"
#transforma o arquivo em iso, caso não seja, para evitar erro do utf sendo passado 2 vezes
recode utf-8..iso8859-1 $i 2> /dev/null
#recodifica realmente
recode iso-8859-1..utf-8 $i
done
if [ $? == 0 ]
then
echo -e "\nConversão terminada com sucesso!\n"
fi
copie e salve o arquivo com o nome iso2utf.sh
dê permissões de execução e use com o comando
./iso2utf.sh nome_do_diretorio
Bom, é tudo.
Espero que este texto possa ajudar.