I am using PostgreSQL 9.1. Trying to enforce UTF8 encoding as default.
This is what I am doing.
service postgresql initdb -E 'UTF-8' --lc-collate='en_US.UTF-8' --lc-ctype=locale='en_US.UTF-8';
Although the initilization process goes on without any problem,
a \l at the psql prompt gives there details.
List of databases
Name | Owner |Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | LATIN1 | en_US | en_US|
Why is the UTF-8 encoding not getting enforced?
Looks like you are calling initdb through a runlevel script of the OS. This script might not pass on the parameters. You better try executing initdb directly, you will need to perform the following steps starting as root and assuming the OS user account for the database is postgres.