Разместить здесь рекламу 32.2 Как сделать, чтобы PostgreSQL поддерживал русский в кодировке [нужное
вписать]?

По порядку:

1. PostgreSQL должен быть собран с ключами --enable-locale
--enable-multibyte. RPM'ы, как правило, собираются с этими ключами, если вы
собираете из исходников — не забудьте их указать!

2. У пользователя, от лица которого работает сервер (обычно postgres) должна
быть установлена нужная локаль. Этого можно добиться, например, добавив в
его файл .bash_profile строки:

LANG=ru_RU.KOI8-R
export LANG

Если нужной локали (например с кодировкой CP1251) в системе нет, то перед
этим надо проделать следующее:

$ localedef -c -i ru_RU -f CP1251 ru_RU.CP1251

3. После этого надо проинициализировать директорию, в которой будут
находиться базы данных, указав кодировку по умолчанию (можно, впрочем и не
указывать):

$ initdb -E KOI8

или, для любителей длинных ключей

$ initdb --encoding=KOI8

Учтите: начиная с версии 7.1 порядок сортировки строк и разница между
заглавными/строчными буквами задаётся именно при этой инициализации в
соответствии с установленной локалью, потом их изменить нельзя. До версии
7.1 эти значения определялись локалью при запуске postmaster'а, что могло
привести к порче индексов по текстовым полям.

4. Кодировку также можно указывать при создании отдельных баз:

$ createdb -E win mustdie

5. Если все шаги проделаны верно, то сортировка, функции upper()/lower(),
операторы ILIKE и ~* должны работать правильно. Если не работает хотя бы
одна из этих функций — проверьте настройки.

Best regards,
Step.
Раздел вышеUp
НачалоTop
КонецDown
Запомнить+Marker
ВосстановитьMarker
Забыть-Marker
РекламаAdv
Font

Сказать спасибо Укоротить ссылку Нашли ошибку?

Дочитать позже / поделиться

   

См. также


Новости партнеров