Обсуждение: Кодировка на сервере

Поиск
Список
Период
Сортировка

Кодировка на сервере

От
Serik
Дата:
Добрый день !
Для клиента имеет значение, в какой кодировке хранятся
данные на сервере ?

Сейчас PG 8.0.1 работает на linux,
данные хранятся в koi8-r, на сервере локаль ru_RU.koi8-r
У программиста постоянно возникают проблемы с кодировками,
то ошибки от сервера приходят в нечитаемом виде, то
данные не читаются,
то запросы типа
"where type='наличный'"
не срабатывают. Причем в разных клиентах (PGAdmin, EMS,
свое приложение) по разному.
Я предлагаю везде явно устанавливать
set client_encoding=win;
и проверять настройки клиентов (шрифты, кодировки).
Он предлагает хранить данные на сервере в кодировке WIN,
и соответсвенно придется изменить настройки локали в ОС.
Поможет это ?

Спасибо !
Serik Akhmetov

Re: Кодировка

От
"Viktor Vislobokov"
Дата:
В версиях 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
>
>
>


--
С уважением, Виктор



Re: Кодиро

От
"Alexander M. Pravking"
Дата:
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

Re: Кодиро

От
"Alexander 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

Re: Кодиро

От
Sergey Suleymanov
Дата:
>>>>> Alexander M Pravking writes:

 Alexander> Вру, не кластер. Достаточно пересоздать _базу_ в WIN.

            Помнится были проблемы с функциями на plperl. Приходилось
            при запуске выставлять именно локаль.

--
  Sergey Suleymanov