URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2941
[ Назад ]

Исходное сообщение
"немного offtopic: bde+postgresql"

Отправлено boykov , 19-Май-04 01:03 
Есть: freebsd, postgresql, базы набранные в koi8
Надо: достучаться до БД из BDE/ODBC и получить нормальные кодировки -- дабы печатать нормально.
ВОПРОС: как? Что в принципе для этого надо? локаль в самой БД? особая настройка bde?

может вопрос и дурацкий, и ответ на него уже где-то написан -- укажите ссылкой, пожалуйста, потому как крыша уже едет.


Содержание

Сообщения в этом обсуждении
"немного offtopic: bde+postgresql"
Отправлено boykov , 19-Май-04 16:13 
>Есть: freebsd, postgresql, базы набранные в koi8
>Надо: достучаться до БД из BDE/ODBC и получить нормальные кодировки -- дабы
>печатать нормально.
>ВОПРОС: как? Что в принципе для этого надо? локаль в самой БД?
>особая настройка bde?
>
>может вопрос и дурацкий, и ответ на него уже где-то написан --
>укажите ссылкой, пожалуйста, потому как крыша уже едет.

Сам расковырял. В общем так: есть два метода -- старый и новый.
Старый основан на перекодировке на лету однобайтовых символов. Настраивается на сервере в привязке к IP файликом charset.conf для каждой БД (см. комментарии в нем).  Требует при configure --enable-recode
Ничего кроме этого не нужно. Таблицы перекодировки идут в поставке.

Новый -- на основе поддержки мультибайтовых кодировок. Требует ./configure --enable-multibyte=KOI8, при создании БД -- указания ее кодировки. Затем -- либо в конфиге сервера указывается PGCLIENTENCODING в окружении postmaster, либо на стороне клиента в ините ODBC ставится
SET CLIENT_ENCODING='WIN';
Важнно, что перекодировка из SQL_ASCII (по умолчанию для новой БД) в русские -- не катит.

Да. Линк - http://doc.sumy.ua/db/pgsql/multibyte.html

Насколько я понял перекодировка слабо (вообще не?) связана с локалью -- но не проверял.