convert(... using windows_1251_to_utf8) - works on cli, but not in a c prog.

Поиск
Список
Период
Сортировка
От Alexander Farber
Тема convert(... using windows_1251_to_utf8) - works on cli, but not in a c prog.
Дата
Msg-id 943abd910612231525w5ecf342dldb83b6bf2553c1f2@mail.gmail.com
обсуждение исходный текст
Ответы Re: convert(... using windows_1251_to_utf8) - works on cli, but not in a c prog.  ("Alexander Farber" <alexander.farber@gmail.com>)
Список pgsql-general
Hello,

I'm programming a small Flash game with PostgreSQL 8.1.4
and phpBB serving as backend. The data in the database is
in windows_1251 encoding. For my game I have to convert
it into utf8, and at the command prompt it seems to work (I recon
this because 7 win1251 chars seem to produce 14 utf8 bytes):

phpbb=> show client_encoding;
 client_encoding
-----------------
 SQL_ASCII
(1 row)

phpbb=> select username from phpbb_users where user_id=179;
----------
 Василий
(1 row)

phpbb=> select convert(username using windows_1251_to_utf8) from
phpbb_users where user_id=179;
 convert_using
----------------
 Р'асилий
(1 row)

But when I call the same command from my C program,
I get the result in Windows-1251 and not in utf8:

    #define      SQL_FETCH_USER          \
    "select (username using windows_1251_to_utf8), " \
    "user_avatar from phpbb_users where user_active = 1 " \
    "and user_id = $1 and user_password = $2 and user_id not in " \
    "(select ban_userid from phpbb_banlist where ban_userid is not null)"

     PQprepare(....);
     PQexecPrepared(....);

     [ and as result I get only 7 bytes, in Win1251 encoding:
       %C2%E0%F1%E8%EB%E8%E9   ]

I realize that my question is a bit chaotic, but maybe someone
already knows, why wouldn't convert() work in my C program?

Otherwise I'll try to prepare a simple test case

Thank you
Alex



--
http://preferans.de

В списке pgsql-general по дате отправления:

Предыдущее
От: Ben
Дата:
Сообщение: Re: tape backups
Следующее
От: "Alexander Farber"
Дата:
Сообщение: Re: convert(... using windows_1251_to_utf8) - works on cli, but not in a c prog.