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

Если же ты в хранимках пишешь например raise notice '%' 'Привет' - то в логи валится будет в той кодировке, в которой написаны сами хранимки
...
Рейтинг: 0 / 0
26.08.2006, 11:59
    #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
26.08.2006, 13:25
    #33944658
ChameLe0n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки сообщений об ошибках
Как вариант сразу после соединения с сервером попробуй, постгрес будет все конвертировать в указанную кодировку
Код: plaintext
set client_encoding to XXX;
где XXX=cp1251 или UTF8 или koi8-r
...
Рейтинг: 0 / 0
26.08.2006, 14:51
    #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
26.08.2006, 15:06
    #33944733
httt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки сообщений об ошибках
Это изменяет только кодировку данных SQL-запросов.
...
Рейтинг: 0 / 0
13.09.2006, 16:37
    #33984824
httt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировки сообщений об ошибках
Больше нет вариантов...? Уже сильно начало напрягать. Может нужно что-то в системе (в ОС) делать?
...
Рейтинг: 0 / 0
13.09.2006, 18:51
    #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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Кодировки сообщений об ошибках / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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