Изменение типа 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