Reconfigurar as "LOCALES" passando de UTF-8 para ISO-8859-1
Dica publicada em Linux / Configuração
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):
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):
3 - Agora vamos executar um comando que copia os "alias" para os "locales", facilitando a configuração:
echo "pt_BR pt_BR.ISO-8859-1" >> /etc/locale.alias
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:
5 - Perfeito. Criamos os arquivos necessários para a geração das "locales"; agora vamos reconfigurá-las utilizando os comandos abaixo:
# localedef pt_BR -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO-8859-1 -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO8859-1 -i pt_BR -f ISO-8859-1
# dpkg-reconfigure locales
# locale-gen --purge
# locale-gen
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):
# locale
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR"
LC_NUMERIC="pt_BR"
LC_TIME="pt_BR"
LC_COLLATE="pt_BR"
LC_MONETARY="pt_BR"
LC_MESSAGES="pt_BR"
LC_PAPER="pt_BR"
LC_NAME="pt_BR"
LC_ADDRESS="pt_BR"
LC_TELEPHONE="pt_BR"
LC_MEASUREMENT="pt_BR"
LC_IDENTIFICATION="pt_BR"
LC_ALL=
# locale -a
C
en_US.iso88591
POSIX
pt_BR.iso88591
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.
Espero que gostem da dica.
Abraços.
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"
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"
LANGUAGE="pt_BR:pt:en"
3 - Agora vamos executar um comando que copia os "alias" para os "locales", facilitando a configuração:
echo "pt_BR pt_BR.ISO-8859-1" >> /etc/locale.alias
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:
pt_BR.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1
5 - Perfeito. Criamos os arquivos necessários para a geração das "locales"; agora vamos reconfigurá-las utilizando os comandos abaixo:
# localedef pt_BR -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO-8859-1 -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO8859-1 -i pt_BR -f ISO-8859-1
# dpkg-reconfigure locales
# locale-gen --purge
# locale-gen
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):
# locale
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR"
LC_NUMERIC="pt_BR"
LC_TIME="pt_BR"
LC_COLLATE="pt_BR"
LC_MONETARY="pt_BR"
LC_MESSAGES="pt_BR"
LC_PAPER="pt_BR"
LC_NAME="pt_BR"
LC_ADDRESS="pt_BR"
LC_TELEPHONE="pt_BR"
LC_MEASUREMENT="pt_BR"
LC_IDENTIFICATION="pt_BR"
LC_ALL=
# locale -a
C
en_US.iso88591
POSIX
pt_BR.iso88591
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.
Espero que gostem da dica.
Abraços.
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?