Re: using 8 bit ascii - Mailing list pgsql-jdbc

From Anders Hermansen
Subject Re: using 8 bit ascii
Date
Msg-id 20041027133857.GA8631@online.no
Whole thread Raw
In response to Re: using 8 bit ascii  ("Jason Tesser" <JTesser@nbbc.edu>)
List pgsql-jdbc
Is it JDBC driver or another interface that says it cannot support the
Unicode values when you insert? What is the exact error message you get?

If you use for example ODBC and insert Latin-1 characters in a Unicode
db, things will go wrong. You can issue the following statement:
SET CLIENT_ENCODING TO 'LATIN1';
This will tell postgresql to expect latin1 characters. Postgresql will
then automatic convert to correct character set if necessary.

The JDBC driver will always operate in UNICODE mode, so it should not
have any problems with either Latin1 nor unicode databases.

I use JDBC driver with both Latin1 and Unicode databases with no
problems. I also use psql for some scripts, but I have ISO-8859-1
terminal, so I execute the above query first.
(Actually I have "\encoding LATIN1" in my .psqlrc file).


Anders

* Jason Tesser (JTesser@nbbc.edu) wrote:
> OK I tried the Unicode but the data won't come in as it says it cannot support the Unicode values I am inserting.  I
triedconverting the data as a text file and everything.  Nothing has worked there.  With odbc using access for example
Ican pull the 8 bit characters out just fine from the same database.  So why can I not using postgres jdbc? 
> I understand that ascii is 7 bit but these are extended ascii.  I will try Latin 1
>
> > -----Original Message-----
> > From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-
> > owner@postgresql.org] On Behalf Of Anders Hermansen
> > Sent: Wednesday, October 27, 2004 8:12 AM
> > To: pgsql-jdbc@postgresql.org
> > Subject: Re: [JDBC] using 8 bit ascii
> >
> > Hello Jason,
> >
> > ASCII is only 7-bit. Values 0 to 127.
> >
> > ISO-8859-1 is an example of a character set with 8-bits (0 to 255).
> > 233 is é in ISO-8859-1 (Latin-1).
> >
> > You should create the database with an encoding which can handle 8-bit
> > characters. I.e. ISO-8859-1 (Postgresql: Latin-1) or UTF-8 (Postgresql:
> > UNICODE)
> >
> >
> > Anders
> >
> > * Jason Tesser (JTesser@nbbc.edu) wrote:
> > > I have a Postgres database (version 7.4.2) that is using acsii character
> > > 233 which is an 8
> > > bit ascii character. I also use jboss.  My problem is when I try to
> > > retrieve
> > > a resultset that has a record with one of the 8bit ascii characters I
> > > get a
> > > message from jboss (see error message below.
> > >
> > > My question is there a way to configure the postgres jdbc driver to
> > > allow
> > > for this range of characters?
> > >
> > > 2004-10-26 16:54:51,167 ERROR [STDERR]
> > > org.postgresql.util.PSQLException: Invalid character data was found.
> > > This is most likely caused by stored data containing characters that are
> > > invalid for the character set the database was created in.  The most
> > > common example of this is storing 8bit data in a SQL_ASCII database.
> > > 2004-10-26 16:54:51,167 ERROR [STDERR]  at
> > > org.postgresql.core.Encoding.decodeUTF8(Encoding.java:287)
> > > 2004-10-26 16:54:51,167 ERROR [STDERR]  at
> > > org.postgresql.core.Encoding.decode(Encoding.java:182)
> > > 2004-10-26 16:54:51,167 ERROR [STDERR]  at
> > > org.postgresql.core.Encoding.decode(Encoding.java:198)
> > > 2004-10-26 16:54:51,167 ERROR [STDERR]  at
> > > org.postgresql.jdbc1.AbstractJdbc1ResultSet.getString(AbstractJdbc1Resul
> > > tSet.java:201)
> > > 2004-10-26 16:54:51,167 ERROR [STDERR]  at
> > > org.postgresql.jdbc1.AbstractJdbc1ResultSet.getString(AbstractJdbc1Resul
> > > tSet.java:475)
> > > 2004-10-26 16:54:51,168 ERROR [STDERR]  at
> > > payroll.DeptWorkers.loadWorkers(DeptWorkers.java:52)
> > > 2004-10-26 16:54:51,168 ERROR [STDERR]  at
> > > org.apache.jsp.manager_jsp._jspService(manager_jsp.jav
> > >
> >

pgsql-jdbc by date:

Previous
From: "Jason Tesser"
Date:
Subject: Re: using 8 bit ascii
Next
From: Vadim Nasardinov
Date:
Subject: JDBC CTS 1.2.1 (was: Re: patch: bring org/postgresql/test/README up to date)