Thread: Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea.
Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea.
From
bartek@mikronika.com.pl
Date:
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 { =========================================================
bartek@mikronika.com.pl wrote: > 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 Looking at the manual page I found it can be true. > and should be convert to octal. I would take care of it. Thanks. regards, Hiroshi Inoue
Hiroshi Inoue wrote: > bartek@mikronika.com.pl wrote: >> 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 > > Looking at the manual page I found it can be true. > > > and should be convert to octal. > > I would take care of it. > Thanks. Please try the snapshot dll at http://www.geocities.jp/inocchichichi/psqlodbc/index.html . regards, Hiroshi Inoue