Изменение типа LC CTYPE для использования PostgreSQL и PostGIS

поэтому я прохожу через учебник 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.

я погуглил и прочитал некоторые документы Ubuntu, но безрезультатно. Любое понимание было бы очень оценено!

Я использую поле по умолчанию Vagrant lucid 32 для тестирования моей настройки.

5 ответов


лучше просто указать локаль для базы данных и иметь кодировку, которая будет выяснена из этого. Поэтому используйте что-то вроде

createdb --locale=en_US.utf8 template_postgis

оба-E UTF8 и --locale=en_US.в utf8 нужны

$ createdb -E UTF8 -T template0 --locale=en_US.utf8 template_postgis

Else, попробуйте это при входе в postgresql:

create database databse_name with owner database_owner encoding='UTF-8'lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0;

вам нужно установить локаль вашей операционной системы на любой совместимый локаль utf8. Запустить locale -a чтобы получить список районов вы можете использовать, а затем сделать что-то вроде update-locale LANG=en_US.utf8, заменив язык.utf8 с любым языком, который вы хотите.


посмотрите на это: 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