Wednesday, March 05, 2008

PostgreSQL e Codificações (PostgreSQL and Encodings)

Uma pergunta freqüente na lista pgbr-geral é "Qual codificação eu devo usar com o PostgreSQL"? Recentemente isso foi discutido novamente, e as mesmas coisas foram discutidas novamente. Tal como seus colegas nos EUA -- onde eu trabalho há 9 anos -- os desenvolvedores de aplicações do Brasil parecem conhecer muito pouco sobre codificações e conjuntos de caracteres.

Eu recomendo o ótimo artigo do Joel Spolsky sobre o assunto. Sem desculpas. Tem que ler. Já leu? Não continue antes de ler.

Numa conversa no canal #postgresql na rede freenode, conversei com a Susanne Ebrecht, que recentemente escreveu um bom resumo do assunto para uma apresentação no grupo de usuários de PostgreSQL da Alemanha. Ela me deu permissão para publicar a apresentação dela. A apresentação entitulada Encoding Issues está disponível aqui. Espero que isso esclareça as dúvidas.

ATUALIZADO [2008-03-07]: Coloquei link para o artigo do Joel Spolsky em Português.

------

A recurring question on the pgbr-geral Brazilian PostgreSQL mailint list is "Which encoding should I use with PostgreSQL?" Recently this was discussed again. Just like their US colleagues -- where I've worked for the last 9 years -- the application developers in Brazil seem to know very little about encodings and character sets.

I recommend the excellent article by Joel Spolsky. No excuses. Got to read it. Have you read it? Don't go on before reading.

During a conversation on the #postgresql channel on the freenode network, I spoke to Susanne Ebrecth, who recently wrote an excellent summary of the subject as it relates to PostgreSQL, for a presentation to the German PostgreSQL Users Group. She kindly gave me permission to publish her presentation.

The presentation entitled Encoding Issues is available here. I hope this helps clear up the matter.

2 comments:

  1. Preciso restaurar um backup que foi gerado na versão latin1 do postgress... como posso alterar a configuraçao do programa(esta com win1252)

    ReplyDelete
  2. anonymous,

    Você tem duas opções:

    1) Re-inicia o cluster do PostgreSQL no seu windows (imagino que seja em windows por usar a codificação win1252). Para fazer isso, uma vez que tenhas feito backup de todos os bancos na NOVA codificação (com pg_dump), pare o serviço, e faça um initdb (utilitário do PG) passando os parâmetros da codificação que tu queres (deverias usar UTF-8) e o caminho onde estão teus arquivos de dados.

    2) Converta o arquivo de dump (se estiver em formato texto) usando um utilitário como o GNU convert (não sei se funciona no Windows)

    ReplyDelete