Neste meu primeiro tutorial, vou ensinar uma maneira rápida e prática de adicionar o suporte ao LATIN1 no PostgreSQL.
Depois de inúmeras pesquisas na internet sobre como resolver o problema de encode no Postgres, deparei com infinitos artigos, tutoriais, dicas e afins dizendo que para resolver o problema, deve-se trocar o idioma do sistema operacional. Isso mesmo, trocar o idioma do sistema operacional.
Entendo que se você está no Brasil, deve instalar um sistema em português, mas eu particularmente, prefiro sempre o padrão inglês, porque por mais que você tente usar um sistema em português, uma hora ou hora aparece inúmeras mensagens em inglês, então pra evitar esse detalhe, eu sempre opto por instalar todo o sistema em inglês.
Neste tutorial, todos os comandos executados foram a partir do Ubuntu 14.04 Server, provavelmente deve funcionar em versões anteriores. Mão na massa.
Como já disse, a solução é muito mais simples do que parece.
Primeiro, precisamos adicionar suporte ao encode/idioma/locale desejado e no caso do LATIN1, usaremos "pt_BR.ISO-8859-1" com a seguinte linha de comando:
Agora vamos recompilar os encodes/idiomas/locales para serem suportados pelo sistema operacional:
sudo dpkg-reconfigure locales
Pronto. Seu sistema operacional já tem suporte a LATIN1 ou... ISO-8859-1, logo "pt_BR.ISO-8859-1". Simples assim, porém, partindo do pressuposto que seu banco de dados já esteja rodando enquanto efetuávamos as alterações, precisaremos reiniciá-lo, pois só assim ele carregará o suporte ao encoding.
Para isso, basta executar:
sudo service postgresql restart
Pronto. Seu Postgres já tem suporte a LATIN1. Mas para criar o banco de dados, você precisa informar alguns parâmetros para obter êxito na criação do banco, como: