我正在使用 PostgreSQL 9.1。尝试默认强制执行 UTF8 编码。
这就是我正在做的事情。
service postgresql initdb -E 'UTF-8' \
--lc-collate='en_US.UTF-8' \
--lc-ctype=locale='en_US.UTF-8';
虽然初始化过程没有任何问题,
a\l
在psql
提示符处提供了详细信息。
List of databases
Name | Owner |Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | LATIN1 | en_US | en_US |
为什么UTF-8
编码没有得到强制执行?
如果 initdb 通过操作系统的运行级脚本运行。此脚本可能不会传递参数。
我无法
initdb
直接以超级用户身份运行。给了一个错误。以非特权用户身份登录后,我能够使用正确的编码初始化数据库。
要初始化数据库,请直接运行 initdb。命令
在非超级用户下运行
postgres.