Re: [ODBC] ODBC application works while libpq fails

Поиск
Список
Период
Сортировка
От Inoue, Hiroshi
Тема Re: [ODBC] ODBC application works while libpq fails
Дата
Msg-id 9ec4e199-fd89-5935-b091-648eadb2f983@dream.email.ne.jp
обсуждение исходный текст
Ответ на Re: [ODBC] ODBC application works while libpq fails  (Igor Korot <ikorot01@gmail.com>)
Ответы Re: [ODBC] ODBC application works while libpq fails
Список pgsql-odbc
Hi Igor,

On 2017/08/04 20:59, Igor Korot wrote:
> Hi, Hiroshi,
>
> On Thu, Aug 3, 2017 at 12:06 AM, Igor Korot <ikorot01@gmail.com> wrote:
>> Hi, Hiroshi,
>>
>> On Wed, Aug 2, 2017 at 12:32 AM, Inoue, Hiroshi
>> <h-inoue@dream.email.ne.jp> wrote:
>>> Hi Igor,
>>>
>>>
>>> On 2017/08/02 12:40, Igor Korot wrote:
>>>> Hi,
>>>>
>>>> On Mon, Jul 31, 2017 at 9:05 AM, Igor Korot <ikorot01@gmail.com> wrote:
>>>>>    Hi,
>>>>> I have a very weird situation.
>>>>>
>>>>> I am trying to develop an application which will connect to the
>>>>> PostgreSQL
>>>>> server thru 2 different methods: thru the ODBC and using libpq.
>>>>>
>>>>> Environment:
>>>>> MacOSX 10.8.
>>>>> Xcode 4 (latest available for 10.8)
>>>>> PostgreSQL 9.1 - original from OSX.
>>>>> Application is compiled with the UNICODE
>>>>> iODBC DM for OSX 10.8.
>>>>> Both application and DB server running on the same machine.
>>>>> The database I'm using was created with the default parameters (just
>>>>> CREATE DATABASE draft).
>>>>>
>>>>> When I connect with the ODBC driver, the application works as expected
>>>>> - no errors or problems.
>>>>>
>>>>> However when I tried to run the application with libpq I received an
>>>>> error. The error is:
>>>>>
>>>>> [quote]
>>>>> Invalid byte sequence for encoding UTF-8 0xc3\n
>>>>> [/quote]
>>>>>
>>>>> The application is written in C++ (not ObjC++).
>>>>> The table I am trying to query contains the field with the word
>>>>> "abc+<ALT225>", which inside the database is translated as
>>>>> "abc\xc3\x9f".
>>>>>
>>>>> What could be the reason for such behavior?
>>>>>
>>>>> Is ODBC driver sets the client encoding to some uniform value?
>>>>> Or there something else?
>>>> Here is the content of my .odbc.ini for PostgreSQL on Mac:
>>>>
>>>> [code]
>>>> [postgre]
>>>> Driver               = PostgreSQL Unicode Driver
>>>> host                 = localhost
>>>> ServerName           = localhost
>>>> SERVER               = localhost
>>>> PORT                 = 5432
>>>> UserName             = postgres
>>>> Password             = <my_passwd>
>>>> Database             = draft
>>>> UseServerSidePrepare = 1
>>>> [/code]
>>>>
>>>> As you can see there is no special encoding settings. So it uses one
>>>> that is set by default.
>>>> But using ODBC API works and trying libpq - doesn't.
>>>>
>>>> Could someone please help?
>>>
>>> What is a query which causes a failure?
>>> What is a result of locale command?
>> Sorry for the noise.
>> I think I found the culprit and in the process of fixing it.
>>
>> I will let you know how it goes.
> Apparently I didn't fix it yet.
>
> So here is information requested:
>
> MyMac:dbhandler igorkorot$ locale
> LANG="en_US.UTF-8"
> LC_COLLATE="en_US.UTF-8"
> LC_CTYPE="en_US.UTF-8"
> LC_MESSAGES="en_US.UTF-8"
> LC_MONETARY="en_US.UTF-8"
> LC_NUMERIC="en_US.UTF-8"
> LC_TIME="en_US.UTF-8"
> LC_ALL=
>
> And the failing query is:
>
> SELECT * FROM \"abcatcol\" WHERE \"abc_tnam\" = $1 AND \"abc_ownr\" =
> $2 AND \"abc_cnam\" = $3;
>
> First parameter is "public.abc\xc3\x9f", second - "public" and third - "id".
>
> The error is "Invalid key sequence for UTF-8".

Do you call setlocale(LC_ALL, "") first?

regards,
Hiroshi Inoue
>
> Thank you.
>
>> Thank you.
>>
>>> regards,
>>> Hiroshi Inoue
>>>
>>>> Thank you.
>>>>
>>>>
>>>>> Thank you.


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

Предыдущее
От: Igor Korot
Дата:
Сообщение: Re: [ODBC] ODBC application works while libpq fails
Следующее
От: Igor Korot
Дата:
Сообщение: Re: [ODBC] ODBC application works while libpq fails