Codificação do Sistema Operacional – Arch Linux

By lmmoreira

Por muito tempo tive dor de cabeça com a codificação do Arch Linux.

Codificação nada mais é que o conjunto de caracteres habilitados no seu sistema operacional, por exemplo: UTF-8, ISO-8859-1.

O default do Arch e se não me engano da maioria dos sistemas Unix é UTF-8, porém o Windows trabalha com ISO-8859-1 (Até onde eu sei).

Então como meu Arch trabalhava em uma codificação diferente, quando eu recebia arquivos vindos do Windows com acentos, os mesmos sumiam e davam lugar a um <?> muito estranho, dizendo que o Arch não sabia que caractere era aquele. Caso eu mudasse meu sistema para ISO-8859-1 este problema aconteceria com arquivos vindos de outras máquinas Linux.

Ruim não é.

Pois é.

Explicarei o pouco que pesquisei sobre a forma que a codificação é configurada no Arch Linux.

Em /etc/ existe um arquivo chamado locale.gen (você pode altera-lo na instalação do Arch ou depois de instalado).

Este arquivo locale.gen lista todas as codificações conhecidas, perceba que a maioria está comentada (#), isto é não está habilitada. As codificações descomentadas representam codificações que o seu sistema suporta-rá.

Portanto, procure pela string (pt_BR), estou imaginando que você fale português do Brasil, caso seja do Uzbequistão ou outro procure a codificação correspondente a seu idioma.

No meu caso eu descomentei as strings:

pt_BR.UTF-8 UTF-8

pt_BR ISO-8859-1

Salve e feche o arquivo.

Agora, antes de continuar é necessário gerar os locales que você descomentou, faça isso com o comando

locale-gen

Agora que os locales estão gerados não significa que seu sistema compreende os caracteres que você descomentou, a coisa continua no arquivo /etc/rc.conf.

Abra-o.

Na instalação do Arch Linux, na parte de configuração do rc.conf, a maioria dos tutoriais pede para você configurar este bloco de código desta forma:

LOCALE=”pt_BR.utf8″
HARDWARECLOCK=”localtime”
USEDIRECTISA=”no”
TIMEZONE=”America/Sao_Paulo”
KEYMAP=”br-abnt2″
CONSOLEFONT=
CONSOLEMAP=
USECOLOR=”yes”

Porém assim você está dizendo para o seu sistema suportar apenas a codificação “pt_BR.utf8″.

Resumindo, não importa quais locales estão descomentados no seu locale.gen se o seu rc.conf está configurado apenas para uma (UTF-8).

Portanto o que você deve fazer para que seu sistema suporte as duas codificações brasileiras (pt_BR.UTF-8 e pt_BR ISO-8859-1) é alterar a linha locale para:

LOCALE=”pt_BR”

Logo:

LOCALE=”pt_BR”
HARDWARECLOCK=”localtime”
USEDIRECTISA=”no”
TIMEZONE=”America/Sao_Paulo”
KEYMAP=”br-abnt2″
CONSOLEFONT=
CONSOLEMAP=
USECOLOR=”yes”

Pronto, reinicie a máquina e seu sistema estará suportanto as duas codificações simultaneamente.

Sei que o post trata de um assunto meio besta porém eu fiquei um bom tempo com aqueles <?> vindos do Windows.

Obrigado a todos

Tags: , , , , , , , , , ,

3 Respostas para “Codificação do Sistema Operacional – Arch Linux”

  1. Leonardo (lm.moreira) Disse:

    Acabo de Perceber que cometi um equívoco neste artigo, minha primeira impressão é que o Arch havia suportado as duas codificações, porém percebi que ele somente alterou sua codificação para ISO-8859-1 e não suporta mais UTF-8.

    De qualquer forma, mantenho o artigo para que os novos possam entender melhor a forma que o Arch faz as ligações das codificações.

    Peço desculpas pelo erro.

  2. Lucas Salies Brum Disse:

    Pobre Computeiro.

  3. lmmoreira Disse:

    Hehe, Pobre mesmo rs…

Deixe uma resposta