Reconfigurar as "LOCALES" passando de UTF-8 para ISO-8859-1
Hoje em dia as distribuições estão vindo por padrão com a codificação UTF-8 ao invés de ISO-8859-1 (esta última, padrão do Windows).
O grande problema de manter estas configurações é que os arquivos "herdados" de sistemas como o Windows (fotos, músicas, pastas) que estejam acentuados ou contenham "Ç" (cedilha) deixam de ser exibidos corretamente e, em alguns casos (como no do Kubuntu Linux), o problema ainda se agrava, pois os arquivos não podem ser manipulados por terem nomes inconsistentes e também não podem ser renomeados.
Bootar um live CD do Ubuntu às vezes é uma opção, pois ele consegue manipular estes arquivos mesmo que não consiga exibir os caracteres corretamente. Porém, caso o usuário tenha muitos arquivos e pastas para renomear, este procedimento torna-se algo muito árduo para o qual segue uma possível solução.
Primeiramente gostaria de ressaltar que todos os comandos foram executados com o usuário root e só assim funcionarão.
Existem vários arquivos que fazem a configuração do locales; precisaremos configurar todos eles e depois executar alguns comandos. Então, mãos à obra!
1 - Edite o arquivo /etc/environment e altere os campos LANG e LANGUAGE de forma que fiquem iguais ao exemplo abaixo (caso não existam estas linhas, acrescente-as):
LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"
2 - Edite também o arquivo /etc/default/locale e altere os campos LANG e LANGUAGE de forma que fiquem iguais ao exemplo abaixo (caso não existam estas linhas, acrescente-as):
LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"
3 - Agora vamos executar um comando que copia os "alias" para os "locales", facilitando a configuração:
4 - No diretório /var/lib/locales/supported.d existem alguns arquivos que configuram os locales; por padrão existem três arquivos: "en", "pt" e "local". Neste caso, podemos apagar o "en" e o "pt" deixando apenas o "local".
Feito isso, edite o arquivo "local" e deixe seu conteúdo como abaixo:
Obs.: Estão sobrando alguns comandos, mas é pra garantir que o procedimento funcionará em todas as distros.
6 - Ótimo. Agora, basta reinicializar o sistema e este já deve estar operando com a codificação ISO-8859-1. Entretanto, para conferir, vamos rodar mais alguns comandos (lembrando que estes só após reiniciar o sistema):
Podem surgir mensagens de erro referentes ao comando POSIX, mas isto não irá interferir na configuração.
7 - Concluído. Agora o sistema já está operando como ISO-8859-1. Algumas pastas padrão do Linux acentuadas irão apresentar problemas na exibição de seu nomes, mas agora é possível renomeá-las, então basta fazer isto para que tudo fique ok.
[1] Comentário enviado por c1e6er em 16/05/2009 - 10:01h
Este é um dos problemas mais 'chatos' para quem utiliza o dual boot, ou seja, tem o Linux e o win no mesmo HD
Toda vez que se acessa o win ele altera toda a codificação dos arquivos compartilhados, ficando aquela zona de caracteres doidos.
Uma tremenda chateação corrigir tudo no Linux.
Parabéns... é uma grande ajuda.
Agora, fiquei com uma dúvida:
Qual o problema com a ISO 8869-1 no Linux?
Por que o Linux passou a adotar a UTF-8 ao invés de padronizar com a 8859-1?
[2] Comentário enviado por eldermarco em 16/05/2009 - 11:29h
Rapaz, talvez fosse problema parecido que me deu dor de cabeça quando o Amarok não queria tocar os arquivos que eu baixava do Jamendo. Era algum problema com o nome deles, mas nunca consegui resolver.. :(
Só com o Amarok 2 é que isso foi resolvido, mas agora não gosto dele :-)
[3] Comentário enviado por pablomics em 16/05/2009 - 19:18h
Uso o kubuntu em dualboot com WinXP há 3 anos e nunca tive problema com locales. Meus arquivos com caracteres acentuados nunca ficaram ilegíveis ou corrompidos nos programas que uso. O Windows grava em iso-8859-1 mas também lê UTF-8, e o kubuntu lê e grava em todos os padrões que você desejar (e escolher). Com arquivos de texto puro (txt, html, css, js, srt) eu tenho que configurar a codificação no kate/kwrite antes de abrí-lo, ou dar uma convertida com o iconv para as legendas srt serem lidas em players que não suportam múltiplas codificações.
[4] Comentário enviado por mhi7seven em 16/05/2009 - 20:13h
Bem, respondendo ao primeiro comentário. o UTF na verdade também é o padrão adotado pela Aple nos Mac's. .A substituição do iso pelo utf no linux, parece-me dever ao caso de q este isu eh meio q "proprietário" da MS.
ao segundo coment: Com ctz resolveria ;)
e ao terceiro: Bem. no meu caso as coisas não funcionavam assim, salvando em UTF no linux o win n acentua os arquivos + abre-os, o procedimento inverso nunca funcionou.
[5] Comentário enviado por /bin/laden em 17/05/2009 - 17:22h
Por que o Linux passou a adotar a UTF-8 ao invés de padronizar com a 8859-1?
Resposta: O grupo reponsável pelo desenvolvimento/manutenção do padrão iso, não dará mais suporte a esta codificação, concentrando-se no padrão Unicode (utf), que é bem mais completo e abrangente às línguas do mundo.
[7] Comentário enviado por zandao em 23/09/2009 - 17:27h
Respondendo à dúvida dos comentários [1] e [4]:
O utf-8 é o padrão atual, seja para Linux, *BSD, Mac OS X, celulares, setop boxes e, principalmente, WINDOWS. O Windows já suportava utf-8 (porcamente) desde a versão NT. O UTF-8 passou a ser adequadamente suportado no Windows XP, mas somente no Vista ele passou a ser o padrão. Por questão de compatibilidade, nenhum arquivo ou sistema de arquivo é "recodificado" quando você instala uma versão nova do Windows ou do Linux ou do MacOS X, mas se comprar uma máquina nova, com a última versão de seu sistema operacional preferido, ele vai utilizar UTF-8.
Mas ainda tem um problema: muitos aplicativos ainda não foram refeitos para suportar o padrão, por isso ainda vai encontrar muitos programas que só reconhecem o ASCII padrão em sua code-page mais utilizada, a ISO-8859-1, em outros casos (Windows) os utilitários padrão vão ler OK, mas vão tentar sempre que possível salvar usando o ISO-8859-1...
[13] Comentário enviado por ottolinux em 26/03/2015 - 20:42h
Ok, fiz quase tudo mas ainda n~ao funcionou, o item 4 nao consegui pois a distro que toh usando nao tem esse arquivo o /var/lib/locales/supported.d nao existe.
Bom , coloco aqui a saida do locale -a :
root@crunchbang:/etc# locale -a
C
C.UTF-8
POSIX
pt_BR
pt_BR.iso88591
--------------
d'a pra notar que h'a ainda um interferencia desse outro padrao ...
Preciso resolver isso por ainda tenho q fazer a minha declaracao de IRPF :-/ ...