LINUX.ORG.RU

Postgres, Perl / CGI и кодировки


0

0

Здравствуйте, уважаемые!

делал для внутренних нужд небольшого офиса небольшую же БД (Postgres-8.4.2) с CGI-скриптами (Perl-5.8.8). В линухе проверял -- все работает (везде КОИ8).

Под виндой -- я уже замучался с кракозябрами! База создана в win1251, psql ругается что какой-то символ (с кодом \x...) не может быть отображен, НО текстовые данные на русском кажет(!). Perl-скрипты из консоли тоже отображают русский текст из БД.

Дошел до CGI -- понятно, что в броузере текст типа print 'Жми сюда' зависит от кодировки текста самого скрипта, а ВОТ ТЕКСТ ИЗ БД ВЫВОДИТСЯ В win866!!!

Где, млин, происходит это преобразование? И есть ли толк от 'use locale' ?

и вторая проблема : есть одно ключевое поле, значение которого удобнее вводить самому (без автоинкремента и пр.), так вот простейший код (здесь обрезан)

...prepare(insert into ... values (?, ?, ?, ?, ...))

...bind_param(1, $value, { TYPE => SQL_INTEGER } )

...execute

валится с сообщением : INSERT невозможен, ключевое поле UNDEF

если у кого есть мысли, заранее спасибо!


мысль стандартная - createdb -E UTF8 и ваши волосы будут гладкими и шелковистыми.

В CGI не забыть указать когда хэдер печатаешь тоже print header(-charset=>'utf-8');

anonizmus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.