Skip site navigation (1) Skip section navigation (2)

Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea.

From: bartek(at)mikronika(dot)com(dot)pl
To: pgsql-odbc(at)postgresql(dot)org
Subject: Invalid byte sequence for encoding "UTF8": 0xa1 - when insert data into bytea.
Date: 2006-12-12 15:23:57
Message-ID: 16562.192.168.3.191.1165937037.squirrel@www2 (view raw or flat)
Thread:
Lists: 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
                {
=========================================================




Responses

pgsql-odbc by date

Next:From: noreplyDate: 2006-12-12 15:26:43
Subject: [ psqlodbc-Bugs-1000836 ] invalid byte sequence for encoding "UTF8": 0x92
Previous:From: Caio BegottiDate: 2006-12-12 11:42:20
Subject: possible odbc driver bug with postgresql-7.4

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group