Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea.
От | bartek@mikronika.com.pl |
---|---|
Тема | Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea. |
Дата | |
Msg-id | 16562.192.168.3.191.1165937037.squirrel@www2 обсуждение исходный текст |
Ответы |
Re: Invalid byte sequence for encoding "UTF8": 0xa1 - when
|
Список | pgsql-odbc |
Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea. PostgreSQL: 8.1.5 Driver: psqlodbc-08.01.0200 Database in UTF-8. Local encoding: LC_ALL=pl_PL.ISO-8859-2 In " convert_to_pgbinary" : isalnum(0xa1) return true for pl_PL.ISO-8859-2 but it isn't ascii character and should be convert to octal. Solution: ======================diff_file================================= --- oryg/convert.c 2006-01-08 11:09:52.000000000 +0100 +++ popr/convert.c 2006-12-05 11:24: 20.000000000 +0100 @@ -3709,6 +3709,15 @@ } +BOOL myisalnum(UCHAR c) +{ + if(isalnum(c) && c <128) + return TRUE; + + return FALSE; +} + + /* convert non-ascii bytes to octal escape sequences */ int convert_to_pgbinary(const UCHAR *in, char *out, int len) @@ -3719,7 +3728,7 @@ for (i = 0; i < len; i++) { mylog("convert_to_pgbinary: in[%d] = %d, %c\n", i, in[i], in[i]); - if (isalnum(in[i]) || in[i] == ' ') + if (myisalnum(in[i]) || in[i] == ' ') out[o++] = in[i]; else { =========================================================
В списке pgsql-odbc по дате отправления: