Re: invalid byte sequence for encoding "UTF8": 0x00 - Mailing list pgsql-jdbc

From Csaba Nagy
Subject Re: invalid byte sequence for encoding "UTF8": 0x00
Date
Msg-id 1171970019.3101.328.camel@coppola.muc.ecircle.de
Whole thread Raw
In response to Re: invalid byte sequence for encoding "UTF8": 0x00  (Altaf Malik <mmalik_altaf@yahoo.com>)
List pgsql-jdbc
I've had the same error, and it is in fact because in Java you can
actually have a "0x0" character in your string, and that's valid
unicode. So that's translated to the character 0x0 in UTF8, which in
turn is not accepted because the server uses null terminated strings...
so the only way is to make sure your strings don't contain the character
'\u0000'.

I identified the place in my code which was generating such a character
and fixed, and I didn't have other problems after that... even if I
still think forbidding a valid character is a somewhat arbitrary
restriction.

HTH,
Csaba.

On Tue, 2007-02-20 at 11:57, Altaf Malik wrote:
> Try to change the encoding of your database to "Unicode".
> I hope this helps.
>
> --Altaf Malik
> EnterpriseDB
> www.enterprisedb.com
> James Im <im-james@hotmail.com> wrote:
>         Hi,
>
>         I've got another problem. I sometimes get the following
>         SQLException
>         when doing an insert:
>
>         ERROR: invalid byte sequence for encoding "UTF8": 0x00
>         Exception: org.postgresql.util.PSQLException
>         org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1525)
>         org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1309)
>         org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
>         org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
>         org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:354)
>         org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:308)
>
>         By the way, the insert is done with a PreparedStatement and I
>         use only
>         setLong(), setString(), setTimestamp() and setInt().
>
>
>         I don't understand it very well. It is obviously an encoding
>         exception
>         but I don't know why it happens and what I could do avoid it.
>
>         Any idea?
>
>         _________________________________________________________________
>         Opret en personlig blog og del dine billeder på MSN Spaces:
>         http://spaces.msn.com/
>
>
>         ---------------------------(end of
>         broadcast)---------------------------
>         TIP 1: if posting/reading through Usenet, please send an
>         appropriate
>         subscribe-nomail command to majordomo@postgresql.org so that
>         your
>         message can get through to the mailing list cleanly
>
>
> ______________________________________________________________________
> Don't get soaked. Take aquick peak at the forecast
> with theYahoo! Search weather shortcut.


pgsql-jdbc by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: invalid byte sequence for encoding "UTF8": 0x00
Next
From: Scott Marlowe
Date:
Subject: Re: how to continue using a connection after an error with autocommit=false