| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Кодировка в Linux при запросе из Postgres |
| Автор: Romch 15.9.2005, 11:05 | ||
| Столкунлся со следующей проблемой. Использую в качестве сервера БД PostgreSQL 8, расположенный под WinXp SP2. В качестве клиента - программа на Си под Линукс. Использую напрямую функции интерфейса odbc.
Приведённый код выводит в файл данные в кодировке UTF8. Несмотря на принудительное установление локали. Тем не менее, данная программа скомпилировання под WinXp корректно выводит в файл в кодировке cp1251. Подозреваю, что это особенность odbc-драйвера для постгрес под линукс. Или в чём проблема? И как её решать? |
| Автор: Kurt 16.9.2005, 22:44 |
| Хм.. Я слабо разбираюсь в Си, но хотел бы спросить: setlocale(LC_ALL,"ru_RU.koi8r") - устанавливает кодировку для чего? Для Си-программы? А PostgreSQL-сервер ей выдает данные в UTF? Возможно, стоит переконвертирвать эти данные в нужную локаль? Я не знаю, как с ODBC, но посмотри http://www.postgresql.org/docs/8.0/interactive/multibyte.html секцию Automatic Character Set Conversion Between Server and Client Надеюсь, поможет. |