powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кодировки сообщений об ошибках
8 сообщений из 8, страница 1 из 1
Кодировки сообщений об ошибках
    #33943523
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные хранятся и выдаются из базы в KOI8, а сообщения об ошибках в UTF8. Как сделать,чтоб все в KOI8.
База Postgres 8.1.4, Linux 2.6. Создавалась с init -E KOI8 (точно не помню).
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33944571
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем ясен вопрос. Если речь идет о системных собщениях - глянь такую опцию в postgresql.conf
lc_messages = 'ru_RU.cp1251'

Если же ты в хранимках пишешь например raise notice '%' 'Привет' - то в логи валится будет в той кодировке, в которой написаны сами хранимки
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33944610
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Речь идет о сообщениях об ошибках. Даже если в комндной строке набираю неправильный запрос, то сообщения выдается в UTF8 (локаль операционной системы). То же самое происходит при отображении через web-интерфейс. Сообщения получаем например так
Код: plaintext
1.
2.
3.
4.
if (PQstatus(conn) != CONNECTION_OK)
   {
      printf(stderr, "Connection to database '%s' failed.\n", PQdb(conn));
      printf(stderr, "%s", PQerrorMessage(conn));
   }
или
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
if(!res || PQresultStatus(res) != PGRES_TUPLES_OK)
        {
      printf(stderr,"%s",PQerrorMessage(conn));
        /*syslog(LOG_ERR, "CGMondb::SelectServerData - [%s] %s",
          PQresStatus(PQresultStatus(res)),
          PQresultErrorMessage(res));
        */
      PQclear(res);
      return (- 1 );
      }
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33944658
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вариант сразу после соединения с сервером попробуй, постгрес будет все конвертировать в указанную кодировку
Код: plaintext
set client_encoding to XXX;
где XXX=cp1251 или UTF8 или koi8-r
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33944726
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То же самое. Пробовал даже в консоле:
Код: plaintext
1.
2.
3.
4.
5.
6.
dbname=# set client_encoding to KOI8;
SET
dbname=# sel;
ERROR:  п╬я┬п╦п╠п╨п╟ я│п╦пҐя┌п╟п╨я│п╦я│п╟ п╡ п╦п╩п╦ я─я▐пЄп╬п╪ "sel" at character  1 
LINE  1 : sel;
        ^
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33944733
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это изменяет только кодировку данных SQL-запросов.
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33984824
httt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Больше нет вариантов...? Уже сильно начало напрягать. Может нужно что-то в системе (в ОС) делать?
...
Рейтинг: 0 / 0
Кодировки сообщений об ошибках
    #33985310
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
postgres=# set lc_messages to "C";
SET
postgres=# sel;
ERROR:  syntax error at or near "sel" у символа  1 
СТРОКА  1 : sel;
          ^
postgres=# set lc_messages to "ru_RU.KOI8-R";
SET
postgres=# sel;
ERROR:  ПЫЙВЛБ УЙОФБЛУЙУБ Ч ЙМЙ ТСДПН "sel" у символа  1 
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кодировки сообщений об ошибках
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]