Re: invalid byte sequence for encoding "UTF8": 0x00

From: Csaba Nagy <nagy(at)ecircle-ag(dot)com>
To: Altaf Malik <mmalik_altaf(at)yahoo(dot)com>
Cc: James Im <im-james(at)hotmail(dot)com>, Postgres JDBC <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: invalid byte sequence for encoding "UTF8": 0x00
Date: 2007-02-20 11:13:39
Message-ID: 1171970019.3101.328.camel@coppola.muc.ecircle.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin 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(at)hotmail(dot)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(at)postgresql(dot)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.

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Oliver Jowett 2007-02-20 11:50:14 Re: invalid byte sequence for encoding "UTF8": 0x00
Previous Message Altaf Malik 2007-02-20 10:57:07 Re: invalid byte sequence for encoding "UTF8": 0x00

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2007-02-20 11:50:14 Re: invalid byte sequence for encoding "UTF8": 0x00
Previous Message Altaf Malik 2007-02-20 10:57:07 Re: invalid byte sequence for encoding "UTF8": 0x00