Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]

Configurando codificação (locale) ISO-8859-1 no Kubuntu 7.10 Gutsy Gibbon

Introdução

A cada dia novas distribuições são lançadas, e muitas vezes cada uma com uma codificação diferente.

Quando comecei a trabalhar com Linux usava Conectiva 10, passei para Slackware, Debian, Ubuntu e Kubuntu. Hoje ainda utilizo Debian Sarge em meus servidores e Kubuntu 7.10 no desktop.

Por padrão, as distribuições novas estão vindo com a codificação UTF-8, mas antes não havia um padrão e muitas eram ISO-8859-1, que no caso, as citadas acima, apenas Ubuntu e Kubuntu eram UTF-8.

Ao utilizar o Kubuntu me deparei com o problema dos caracteres estranhos, isso ocorreu pela incompatibilidade entre as codificações, mas passar o Kubuntu para ISO, a princípio, não foi uma tarefa tão simples.

Acredito que ganhei certa experiência nesta peleja e quero passar para outras pessoas este conhecimento, de como mudar a codificação do Kubuntu (Ubuntu, Xubuntu, Edubuntu…) para ISO-8859-1 e igualar a codificação dos arquivos e diretórios.

Mãos-a-Obra

Todas as configurações e comandos foram executados como usuário root.

Existem vários arquivos que fazem a configuração do locale, precisamos configurar todos eles e depois executar alguns comandos, vamos lá.

Edite o arquivo /etc/environment e altere os campos LANG e LANGUAGE de forma que fiquem iguais ao abaixo, se não existir, acrescente:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

O arquivo /etc/default/locale também deve ser editado e seu conteúdo deve ser:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

Execute o seguinte comando:

# echo "pt_BR pt_BR.ISO-8859-1" >> /etc/locale.alias

Este arquivo grava os aliases para os locales, isso é para facilitar as configurações.

No diretório /var/lib/locales/supported.d alguns arquivos que configuram os locales que serão gerados, por padrão existem três arquivos “en”, “pt” e “local”. Para nosso caso, pode 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

Muito bem, configuramos os arquivos necessários para a geração dos locales, agora vamos reconfigurar.

Os comandos abaixo fazem o serviço:

# 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

Acredito que apenas um desses três comandos fariam o serviço, mas como eu executei os três quando estava configurando o sistema não vou tirar algum deles, é melhor executar a mais e funcionar do que executar a menos e não funcionar.

Reinicie o sistema e execute o comando abaixo para termos certeza que está tudo conforme o desejado.

# 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

Agora sim, está tudo como deveria estar. Nosso sistema já está usando ISO-8859-1.

Configurando os arquivos e diretórios

Pode ocorrer de serem criados arquivos e diretórios com o locale direrente, assim, quando alteramos para ISO alguns ficaram em UTF, para isso usaremos o comando convmv.

Instalamos o comando pela ferramenta padrão do Debian, apt.

# apt-get install convmv

Entre no diretório que deseja fazer a alteração e execute os comando abaixo:

Primeiro vamos recodificar os diretórios, o parâmetro “-type” do comando find se encarregará disso, “d” para diretórios e “f” para arquivos (files).

# find . -type d -print0 | xargs -0 -i% convmv -f UTF-8 -t ISO-8859-1 %

A saída do comando é como ficarão os diretórios, se você reparar, após executar o comando, os diretórios continuam da mesma forma, o comando acima é apenas um teste, para executar permanentemente use a flag “–notest”.

# find . -type d -print0 | xargs -0 -i% convmv -f UTF-8 -t ISO-8859-1 % --notest

Para os arquivos o mesmo comando, alterando apenas de “d” para “f”.

Recodificando arquivos

O comando para recodificarmos arquivos é o “recode”.

# apt-get install recode

Temos um arquivo na codificação UTF-8, para assegurar-se disso execute:

$ file arquivo.txt
arquivo.txt: UTF-8 Unicode text

Para recodificarmos um arquivo texto de UTF-8 para ISO-8859-1 procederemos da seguinte forma:

$ recode -v UTF-8..ISO-8859-1 arquivo.txt
Requisição: UTF-8..:libiconv:..ISO-8859-1
Encolhido para: UTF-8..ISO-8859-1
Recodificando arquivo.txt... feito

Agora vamos verificar se o arquivo foi recodificado:

$ file arquivo.txt
arquivo.txt: ISO-8859-1 text

Atenção: Fiz esta conversão apenas para um arquivo texto, então é melhor ter cuidado na hora de recodificar, primeiro verifique qual a codificação, pois se a original for diferente de UTF-8 o comando precisará ser mudado.

Configurando o console

Quando usamos a interface gráfica o emulador de terminal não tem problema algum, mas quando estamos no console mesmo temos um grande problema.

Aqui uso teclado padrão americano, que é sem “ç”.

Para isso precisaremos instalar os pacotes abaixo:

# apt-get install console-data console-setup console-common

Feito isso selecione seu teclado através do comando:

# dpkg-reconfigure console-data

Depois use o comando:

# dpkg-reconfigure console-setup

Pronto, se tudo correu bem seu console está configurado como ISO-8859-1 e pronto para uso.

Qualquer dúvida pode entrar em contato pelo endereço lucianogf at underlinux.com.br

valeu
[]’s


Tags: , , , , , , ,

Leia Também


Envie um Trackback do seu site:

Comentarios

Comentarios estao desabilitados neste artigo.

  1. Por Wagner Santos | novembro 26, 2007, 19:48

    Olá,
    Fiz tudo, conforme o tutorial, e apareceu o seguinte erro;
    locale -a
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_COLLATE to default locale: No such file or directory
    C
    POSIX
    en_US.iso88591
    pt_BR.iso88591

    O que posso fazer pra resolver esse problema???

    Já procurei na net mas nada….

  2. Por lucianogf | novembro 26, 2007, 21:32

    Olá Wagner,

    Esqueci de citar a configuração de um arquivo, o /etc/default/locale, o conteúdo dele deve ser
    LANG=”pt_BR”
    LANGUAGE=”pt_BR:pt:en”

    após isso execute novamente os comandos para gerar os locales.

    (Estes parâmetros já foram adicionados ao artigo)

  3. Por Rodrigo Grassi | novembro 27, 2007, 08:49

    Olá Wagner !
    Parabéns pelo seu tutorial.
    Eu utilizo o Debian, e acredito que nas derivações dele sejam parecidas.
    Configurar o locales para o padrão ISO-8859-1, eu utilizo o comando dpkg-reconfigure locales.
    Seleciono a opção pt_BR ISO-8859-1 e pesso para ativa-la.
    Assim os acentos funcionam sem problema.

    Bom espero ter ajudado.

    Valeu.

  4. Por lucianogf | novembro 27, 2007, 13:25

    Fala rodrigo,

    O problema que no Kubuntu esse comando não resolveu…

    ae foi necessário toda essa manobra..

  5. Por Luís Fernando | dezembro 4, 2007, 15:25

    cara quando eu executo o comando locale -a ta saindo diferente do seu e axo q num ta mudando nda o q pod ser?
    locale -a
    C
    en_US.iso88591
    en_US.utf8
    POSIX
    pt_BR.iso88591
    pt_BR.utf8

  6. Por lucianogf | dezembro 7, 2007, 04:18

    cara…

    você seguiu todos os passos sem pular nada???

    é possível que você tenha pulado o “locale-gen –purge”

    valeu

  7. Por Rodrigo Faria | dezembro 20, 2007, 10:41

    Oi,

    Ao usar o comando do find vem a mensagem de retorno :

    root@desktop:~# find . -type d -print0 | xargs -0 -i% convmv % –notest
    wrong/unknown \

  8. Por zeze | dezembro 21, 2007, 06:27

    Olá, aqui estou com o mesmo problema do Luís Fernando, só que uso o ubuntu 7.10 e quando crio um arquivo via desktop com acentuação aparece desconfigurado no terminal mais se crio no terminal aparece ok no desktop.

  9. Por Neimar | dezembro 21, 2007, 15:38

    Belo artigo….eu usei e funcionou perfeitamente!

  10. Por Diego | janeiro 31, 2008, 23:26

    Também estou com o mesmo problema do Rodrigo e do Zeze… alguem conseguiu solucionar o problema?

  11. Por Anderson | fevereiro 1, 2008, 11:34

    Caraaaaaa,
    tava quase “jogando a toalha” quando achei teu artigo,
    fiz umas modificaçõezinhas para os arquivos de configuração do debian e funcionou perfeitamente.

    vlwwwwww
    []s

  12. Por Fabio | fevereiro 11, 2008, 20:59

    Cara, ferrou tudo. Estou com os mesmos problemas citados acima… Q q eu faço? Como volto ao UTF-8? Antes eu não tinha problemas com o terminal e agora eu tenho…

  13. Por Fabio | fevereiro 11, 2008, 21:16

    Olá Luciano. Meu nome é Fábio. Sou relativamente novo no mundo Linux, mas já posso dizer que sou um apaixonado. Tenho um Ubuntu Studio 7.10 Gutsy Gibbon e segui seu tutorial”Configurando codificação (locale) ISO-8859-1 no Kubuntu 7.10 Gutsy Gibbon” presente na URL http://under-linux.org/7954-configurando-locale-iso-8859-1-no-kubunt-710-gutsy-gibbon.html#comment-30851

    Me deparei com alguns problemas:

    1-Quando eu executo o comando locale -a:
    locale -a
    C
    en_US.iso88591
    en_US.utf8
    POSIX
    pt_BR.iso88591
    pt_BR.utf8

    2-Ao usar o comando do find vem a mensagem de retorno :
    root@desktop:~# find . -type d -print0 | xargs -0 -i% convmv % –notest
    wrong/unknown \

    3-As pastas ficaram “esquisitas” no terminal. Por exemplo o arquivo “Agenda.txt” aparece como “Agenda~” e não consigo mais modificar as permissõs do memo pelo Desktop. Pasta do tipo: “Arquivos Ubuntu” estão aparecendo como “Arquivos \ Ubuntu”

    Percebi que vários ouros usuários estão tendo o mesmo problema. Será que é porque vc criou o tutorial par Kubuntu e no Ubuntu tem alguns detalhes que deveriam ser diferentes???

    Se for o caso, como volto à estaca zero, ou seja, como volto a ter o UTF-8??? Não lembro mais as linhas originais ds arquivos modificados…

    Agradeço antecipadamente a atenção dispensada.

    Fábio Vicente Leite

  14. Por lucianogf | fevereiro 11, 2008, 22:06

    pessoal..

    não tinha respondido ainda porque não estou recebendo as notificações de comentários aqui..

    fiz uma alteração na linha referente ao convmv, vejam que a primeira faz apenas um teste, e se tudo correr bem é que deve-se colocar o “–notest”, mas quem vê se vai correr tudo bem ou não é quem está executando o comando e não o computador!!!

  15. Por Fabio | fevereiro 11, 2008, 23:07

    Olá Luciano!!! Essa correção foi tiro e queda!!! Maravilha!!! Mas ainda estou com o problema do terminal :( Pastas com “espaço” estão sendo reconhecidas como “\ ” e no final de alguns arquivos aparecem acento “~”… Antes de eu seguir este tutorial, não tinha este problema. O que será???

    Gde abraço!!!

    Fábio