Estou usando o PostgreSQL 9.1. Tentando impor a codificação UTF8 como padrão.
Isto é o que estou fazendo.
service postgresql initdb -E 'UTF-8' \
--lc-collate='en_US.UTF-8' \
--lc-ctype=locale='en_US.UTF-8';
Embora o processo de inicialização ocorra sem nenhum problema,
a \l
no psql
prompt fornece detalhes.
List of databases
Name | Owner |Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | LATIN1 | en_US | en_US |
Por que a UTF-8
codificação não está sendo aplicada?
Se o initdb for executado por meio de um script de nível de execução do sistema operacional. Este script pode não transmitir os parâmetros.
Eu não poderia executar
initdb
diretamente como um superusuário. Dei umerro. Depois de fazer login como um usuário sem privilégios, consegui inicializar o banco de dados com a codificação adequada.
Para inicializar o banco de dados, execute initdb diretamente. O comando
foi executado sob o não-superusuário
postgres.