Thread: Кодировка на сервере
Добрый день ! Для клиента имеет значение, в какой кодировке хранятся данные на сервере ? Сейчас PG 8.0.1 работает на linux, данные хранятся в koi8-r, на сервере локаль ru_RU.koi8-r У программиста постоянно возникают проблемы с кодировками, то ошибки от сервера приходят в нечитаемом виде, то данные не читаются, то запросы типа "where type='наличный'" не срабатывают. Причем в разных клиентах (PGAdmin, EMS, свое приложение) по разному. Я предлагаю везде явно устанавливать set client_encoding=win; и проверять настройки клиентов (шрифты, кодировки). Он предлагает хранить данные на сервере в кодировке WIN, и соответсвенно придется изменить настройки локали в ОС. Поможет это ? Спасибо ! Serik Akhmetov
В версиях 6.x была такая переменная окружения PGCLIENTENCODING я базу хранил в koi8-r, а эту переменную всегда устанавливал в 'win', чтобы ЛЮБОМУ клиенту отдавало в кодировке 'win'. С Дельфи у меня проблем не было, попробуй, может до сих пор работает. >Добрый день ! >Для клиента имеет значение, в какой кодировке хранятся >данные на сервере ? > >Сейчас PG 8.0.1 работает на linux, >данные хранятся в koi8-r, на сервере локаль ru_RU.koi8-r >У программиста постоянно возникают проблемы с кодировками, >то ошибки от сервера приходят в нечитаемом виде, то >данные не читаются, >то запросы типа >"where type='наличный'" >не срабатывают. Причем в разных клиентах (PGAdmin, EMS, >свое приложение) по разному. >Я предлагаю везде явно устанавливать >set client_encoding=win; >и проверять настройки клиентов (шрифты, кодировки). >Он предлагает хранить данные на сервере в кодировке WIN, >и соответсвенно придется изменить настройки локали в ОС. >Поможет это ? > >Спасибо ! >Serik Akhmetov > >---------------------------(end of broadcast)--------------------------- >TIP 4: Have you searched our list archives? > > http://archives.postgresql.org > > > -- С уважением, Виктор
On Tue, 2006-01-31 at 14:16 +0500, Viktor Vislobokov wrote: > В версиях 6.x была такая переменная окружения > PGCLIENTENCODING > я базу хранил в koi8-r, а эту переменную всегда устанавливал в 'win', > чтобы ЛЮБОМУ клиенту отдавало в кодировке 'win'. С Дельфи у меня проблем > не было, попробуй, может до сих пор работает. PGCLIENTENCODING подхватывается из libpq и работает, как будто клиент явно задал соответствующую кодировку. Можно также прописать client_encoding = win в postgresql.conf - это будет кодировка по умолчанию для всех коннектов. Только вопрос не только в этом. В виндовой кодировки есть символы, которых нет в KOI - например, "номер" (html №), так что если клиенты работают с этими символами, базу имеет смысл также хранить в виндовой. > >Он предлагает хранить данные на сервере в кодировке WIN, > >и соответсвенно придется изменить настройки локали в ОС. Нет, локаль ОС тут ни при чём, достаточно пересоздать кластер в WIN. -- Fduch M. Pravking
On Tue, 2006-01-31 at 14:09 +0300, Alexander M. Pravking wrote: > > >Он предлагает хранить данные на сервере в кодировке WIN, > > >и соответсвенно придется изменить настройки локали в ОС. > > Нет, локаль ОС тут ни при чём, достаточно пересоздать кластер в WIN. Вру, не кластер. Достаточно пересоздать _базу_ в WIN. Ну и не напортачить с client_encoding при dump/restore :) -- Fduch M. Pravking
>>>>> Alexander M Pravking writes: Alexander> Вру, не кластер. Достаточно пересоздать _базу_ в WIN. Помнится были проблемы с функциями на plperl. Приходилось при запуске выставлять именно локаль. -- Sergey Suleymanov