Re: 7.3.1 UTF-8 bug(?) and 7.2.x Charset compatibility - Mailing list pgsql-jdbc

From Barry Lind
Subject Re: 7.3.1 UTF-8 bug(?) and 7.2.x Charset compatibility
Date
Msg-id 3E406BA8.6080105@xythos.com
Whole thread Raw
In response to 7.3.1 UTF-8 bug(?) and 7.2.x Charset compatibility  (Achilleus Mantzios <achill@matrix.gatewaynet.com>)
Responses Re: 7.3.1 UTF-8 bug(?) and 7.2.x Charset compatibility
List pgsql-jdbc
Achilleus,

What is the character set of your database?  My guess is that it is
SQLASCII which is a 7bit character set.  If you are storing ISO-8859-7
data you should have that as your database character set.  All reports
of problems I have seen in this regards were because the database
character set didn't match the character set of the actual data.  This
is important because the jdbc driver needs to convert the data to java
unicode, and if the database character set is incorrectly defined it
cannot do this correctly.

If this isn't your problem, please submit a test case that shows your
problem so that we can look into it.

thanks,
--Barry


Achilleus Mantzios wrote:
> Hi i encountered 2 problems regarding the 7.3.1 jdbc driver.
>
> 1) The new 7.3.1 assumes data is stored in UNICODE in the database
> (which is most likely reloaded from a 7.2.x dump)
> For instance, in my case all text data in my 7.2.3 were
> ISO-8859-7 (Greek) (8bit ASCII compatible).
> I was not able to read these data correctly since the driver
> assumed i stored them in utf-8.
>
> 2) When the contents of a varchar or text field are the
> ASCII 0xA0 0x0A (which for some reason IE strangely produces)
> the driver throws an java.lang.ArrayIndexOutOfBoundsException :
>
> 2003-01-27 11:50:55,665 ERROR [STDERR]
> java.lang.ArrayIndexOutOfBoundsException
> 2003-01-27 11:50:55,666 ERROR [STDERR]  at
> org.postgresql.core.Encoding.decodeUTF8(Encoding.java:259)
> 2003-01-27 11:50:55,667 ERROR [STDERR]  at
> org.postgresql.core.Encoding.decode(Encoding.java:165)
> 2003-01-27 11:50:55,667 ERROR [STDERR]  at
> org.postgresql.core.Encoding.decode(Encoding.java:181)
> 2003-01-27 11:50:55,668 ERROR [STDERR]  at
> org.postgresql.jdbc1.AbstractJdbc1ResultSet.getString(AbstractJdbc1ResultSet.java:97)
>
> In order to solve these 2 problems for my case , i.e. with no need
> for unicode support i wrote this simple patch.
> (Note this patch is usefull only for people who DONT NEED
> multibyte support)
> --------------------------cut here------------------------------
> *** AbstractJdbc1Connection.java.orig    Tue Jan 28 09:42:54 2003
> --- AbstractJdbc1Connection.java    Tue Jan 28 09:50:09 2003
> ***************
> *** 372,382 ****
>           //support is now always included
>           if (haveMinimumServerVersion("7.3"))
>           {
>               java.sql.ResultSet acRset =
> !                 ExecSQL("set client_encoding = 'UNICODE'; show autocommit");
>
>               //set encoding to be unicode
> !             encoding = Encoding.getEncoding("UNICODE", null);
>
>               if (!acRset.next())
>               {
> --- 372,384 ----
>           //support is now always included
>           if (haveMinimumServerVersion("7.3"))
>           {
> + //            java.sql.ResultSet acRset =
> + //                ExecSQL("set client_encoding = 'UNICODE'; show autocommit");
>               java.sql.ResultSet acRset =
> !                 ExecSQL("show autocommit");
>
>               //set encoding to be unicode
> ! //            encoding = Encoding.getEncoding("UNICODE", null);
>
>               if (!acRset.next())
>               {
> -------------------cut here-------------------------------------------
> ==================================================================
> Achilleus Mantzios
> S/W Engineer
> IT dept
> Dynacom Tankers Mngmt
> Nikis 4, Glyfada
> Athens 16610
> Greece
> tel:    +30-10-8981112
> fax:    +30-10-8981877
> email:  achill@matrix.gatewaynet.com
>         mantzios@softlab.ece.ntua.gr
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>




pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: java.lang.OutOfMemoryError
Next
From: Barry Lind
Date:
Subject: Re: DbVisualizer shows same tables for all DBs