所以,我正在浏览GeoDjango教程,并且我仍然坚持这个错误消息:
postgres@lucid32:~$ createdb -E UTF8 template_postgis
createdb: database creation failed: ERROR: encoding UTF8 does not match locale en_US
DETAIL: The chosen LC_CTYPE setting requires encoding LATIN1.
我用Google搜索并阅读了一些Ubuntu文档,但无济于事。任何见解将不胜感激!
我使用默认的Vagrant Box lucid 32来测试我的设置。
答案 0 :(得分:13)
最好只指定数据库的语言环境,并从中计算出编码。所以使用像
这样的东西createdb --locale=en_US.utf8 template_postgis
答案 1 :(得分:9)
需要-E UTF8和--locale = en_US.utf8
$ createdb -E UTF8 -T template0 --locale=en_US.utf8 template_postgis
答案 2 :(得分:4)
否则,请在登录postgresql时尝试此操作:
create database databse_name with owner database_owner encoding='UTF-8'lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0;
答案 3 :(得分:2)
您需要将操作系统的语言环境设置为任何与utf8兼容的语言环境。运行locale -a
以获取可以使用的语言环境列表,然后执行update-locale LANG=en_US.utf8
之类的操作,将en_US.utf8替换为您想要的任何语言环境。
答案 4 :(得分:2)
看看这个:https://askubuntu.com/questions/20880/unicode-in-postgresql-8-4/114922#114922
您可能需要在创建群集之前配置区域设置
~#export LANGUAGE=en_US.UTF-8
~#export LANG=en_US.UTF-8
~#export LC_ALL=en_US.UTF-8
~#locale-gen en_US.UTF-8
~#dpkg-reconfigure locales