Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с кодировкой / 4 сообщений из 4, страница 1 из 1
22.07.2005, 17:49
    #33180745
Aleksandrs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой
Не могли бы посоветовать как решить такую проблему. PG 8.0 установлен на Win XP, для базы задано Client encoding - WIN, Font charset - BALTIC_CHARSET. Клиентское приложение на той же самой машине. Если делаю изменения данных с консоли EMS PostgreSQL Manager, то все национальные буквы отображаются как надо на сервере, но не видны в клиенте, если делать изменения через клиента (вызов хранимой процедуры с параметром Varchar) выдает сообщение об ошибке - Invalid byte sequence for encoding UNICODE: 0x.....
Спасибо за помощь
А.
...
Рейтинг: 0 / 0
25.07.2005, 23:16
    #33183781
yegorov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой
Не понял, к чему относиться параметр Font_charset.

PostgreSQL для win32 имеет проблемы с UNICODE функциональностью, сообщение об ошибке это подтверждает. Поэтому решением будет использованием одинаковой кодировки для базы и для клиента.

Что означает "для базы задано Client encoding"? Каким образом?
Приведи вывод 2-х SQL-ов в каждом, из используемых клиентов:
1) show client_encoding;
2) SELECT d.datname as "Name",
u.usename as "Owner",
pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding"
FROM pg_catalog.pg_database d
LEFT JOIN pg_catalog.pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
...
Рейтинг: 0 / 0
25.07.2005, 23:17
    #33183782
cobbi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой
Не понял, к чему относиться параметр Font_charset.

PostgreSQL для win32 имеет проблемы с UNICODE функциональностью, сообщение об ошибке это подтверждает. Поэтому решением будет использованием одинаковой кодировки для базы и для клиента.

Что означает "для базы задано Client encoding"? Каким образом?
Приведи вывод 2-х SQL-ов в каждом, из используемых клиентов:
1) show client_encoding;
2) SELECT d.datname as "Name",
u.usename as "Owner",
pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding"
FROM pg_catalog.pg_database d
LEFT JOIN pg_catalog.pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
...
Рейтинг: 0 / 0
26.07.2005, 16:06
    #33185279
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с кодировкой
похожая комбинация клиента и сервака...
на серваке стоит UNICODE
на клиенте (доступ через lib_pq) есть следующая комбинация...

/* Make a connection to the database */
m_pConn = PQconnectdb(strName);
//
const char* pCode = "WINDOWS_1251";
int nRet = PQsetClientEncoding(m_pConn, pCode);

после этого вроде дышит как надо. единственный нюанс..если будете запускать бэкап-рекавери через батч режим, то не забудьте указать изначальную кодировку для БД (в данном примере UNICODE).


удачи Вам
(круглый)
ЗЫ
Если родной клиент постгресса (пэджэадмин который) работает номано - то ищите правильное указание кодировки на конешенне в своём коде.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с кодировкой / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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