conversion problem
От | Andreas Pflug |
---|---|
Тема | conversion problem |
Дата | |
Msg-id | 41DADE6E.2000903@pse-consulting.de обсуждение исходный текст |
Список | pgsql-odbc |
When trying to insert strings with German umlaute (e.g. "täglich") into a text or varchar column, the server throws the message invalid byte sequence for encoding "UNICODE": 0xe4656c This results from ResolveOneParam not converting the string to UTF-8. From debugging I found that ipdopts->parameters[param_number].SQLType contains 0xffff, instead of something sensible for PGType=0x19 (text). The attached patch works as hotfix for me, but is certainly only a workaround for a problem buried deeper because SQLType seems bogus to me. OTOH, I don't understand why the switch(param_pgtype) was invented at all (the original patch I posted more than a year ago didn't have it), because any string coming from the app will probably need conversion to UTF-8 anyway. Regards, Andreas Index: convert.c =================================================================== RCS file: /usr/local/cvsroot/psqlodbc/psqlodbc/convert.c,v retrieving revision 1.121 diff -u -r1.121 convert.c --- convert.c 30 Jul 2004 21:08:12 -0000 1.121 +++ convert.c 4 Jan 2005 17:49:29 -0000 @@ -2621,6 +2621,7 @@ case SQL_WCHAR: case SQL_WVARCHAR: case SQL_WLONGVARCHAR: + case (Int2)0xffff: if (SQL_NTS == used) used = strlen(buffer); allocbuf = malloc(WCLEN * (used + 1));
В списке pgsql-odbc по дате отправления: