Reconfigurar as "LOCALES" passando de UTF-8 para ISO-8859-1

Publicado por Mister Hend Inc. em 16/05/2009

[ Hits: 54.017 ]

 


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:

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

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.

Outras dicas deste autor

Entenda como funciona o controle de restrições no Linux

Wiithon - WBFS Manager para Linux

Gnome/KDE: Sistema não loga ou efetua logoff em 10 segundos (ERRO no .ICEauthority)

Configurando Kmail para usar conta do Gmail

Remover arquivos falsos no Linux (impossíveis de remover)

Leitura recomendada

Dual boot CentOS e Windows 7

Linux Mint atualizando versões 17 e 17.1 para 17.2 Rafaela

Red Hat: Como adicionar o subscription number após a instalação

Configurando o VNC em uma distribuição CentOS (Red Hat)

Instalando o Eterm sem problemas no Slackware 10

  

Comentários
[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 :-)

[]'s

[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.

[6] Comentário enviado por axpira em 13/08/2009 - 23:50h

Excelente dica, agora os programas voltaram a acentuar normalmente!!!

Obrigado

[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...

[8] Comentário enviado por scherer89 em 13/12/2009 - 17:54h

Muito boa dica. Precisei instalar o postgres com a condificação LATIN1 no Kubuntu e isso ajudou muito. Obrigado.

[9] Comentário enviado por lucianogf em 03/08/2010 - 00:02h

Você poderia ter, ao menos, colocado de onde você tirou isso.

EU fiz uma pesquisa e, com base no que li e estudei, montei e postei este artigo no Under-Linux. Você simplesmente copiou e colou!

Nos próximos artigos que você for copiar coloque de onde tirou e quem o criou.

Luciano

[10] Comentário enviado por Mamuga em 16/09/2010 - 17:25h

Perfeito Mr. Hend!!!
Resolveu meu problema de acesso à pastas criadas no Windows, e muito melhor do que ficar usando mvconv.
Obrigado!

[11] Comentário enviado por borgesbruno em 15/10/2010 - 14:28h

Excelente Post! Sempre resolve o meu problema quando preciso instalar o squirrel em alguma máquina.

Bruno Borges

[12] Comentário enviado por alexandremc em 05/04/2013 - 00:41h

Boa noite

Um colega aqui no trabalho roudou apenas o comando dpkg-reconfigure locales

Dessa forma deixo em pt-BR.ISO8859-1 na primeira tela e na segunda tela onde dizia nnehum ou PT-BR como nenhum.

Resultado o sitema não loga mais.

Tem como reparar?

Abraços

[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 :-/ ...

Agradeco a ajuda ai ,
Ateh mais
Otto

[14] Comentário enviado por codgolivre em 28/03/2017 - 13:09h

funciona no debian 8...

[15] Comentário enviado por dsgdance em 25/05/2017 - 14:12h

Resolvi meu problema com locales no ubuntu 16.04, obrigado!!!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts