Как документация, 22.2.Поддержка набора символов говорит:
Однако важным ограничением является то, что каждый набор символов базы данных должен быть совместим с настройками языкового стандарта базы данных LC_CTYPE (классификация символов) и LC_COLLATE (порядок сортировки строк).Для локали C или POSIX разрешен любой набор символов, но для других локалей есть только один набор символов, который будет работать правильно.(Однако в Windows кодировка UTF-8 может использоваться с для любой локали .)
Я вижу, что, вероятно, у вас есть PostgreSQL под хостом Windows (English_United States.1252 locale
), поэтомуВы можете использовать все, что из этого (Posix
такое же, как C
и означает «без локали»), прочитайте 22.1.Поддержка локали :
Поддержка локали относится к приложению, учитывающему культурные предпочтения в отношении алфавитов, сортировки, форматирования чисел и т. Д.
Если вы хотите, чтобы система работала так, как если бы онане имел поддержки языкового стандарта, используйте специальный языковой стандарт C или POSIX.
РЕДАКТИРОВАТЬ:
Платформа Windows не совместима с POSIX, поэтому следует использовать C
локаль для этой платформы.Я не знаю, почему в инсталляторе есть опция POSIX (думаю, это скорее ошибка):
Чтобы создать новый кластер без локали, вы можете просто использовать переключатель --no-locale
, например:
initdb --no-locale -E UTF-8 C:\pgdata