From: | Achilleus Mantzios <achill(at)matrix(dot)gatewaynet(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | 7.3.1 UTF-8 bug(?) and 7.2.x Charset compatibility |
Date: | 2003-01-28 12:58:24 |
Message-ID: | Pine.LNX.4.44.0301281057280.14316-100000@matrix.gatewaynet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
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(at)matrix(dot)gatewaynet(dot)com
mantzios(at)softlab(dot)ece(dot)ntua(dot)gr
From | Date | Subject | |
---|---|---|---|
Next Message | Achilleus Mantzios | 2003-01-28 15:37:40 | Re: 7.3.1 UTF-8 bug(?) and 7.2.x Charset compatibility |
Previous Message | Richard Welty | 2003-01-28 12:56:31 | 7.2 behavior -- inserts, rules and jdbc |