Re: [JDBC] Using Postgres with Latin1 (ISO8859-1)

From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: "J(dot) Michael Crawford" <jmichael(at)gwi(dot)net>
Cc: Kris Jurka <books(at)ejurka(dot)com>, pgsql-general(at)postgresql(dot)org, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [JDBC] Using Postgres with Latin1 (ISO8859-1)
Date: 2004-11-08 21:55:55
Message-ID: 418FEB6B.3000700@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-jdbc

J. Michael Crawford wrote:

> Encoding translations that didn't work:
>
> a) Getting encoded bytes from the result set. We tried the following
> block five times, once for each different encoding we were trying to
> test with the database:

> b) Getting a string, turning it bytes, and then translating. Same
> process as above, but we use result.getString...

> No matter what, strings showed up as gibberish in one JVM or another,
> depending upon the native encoding of the database. A Latin1 database
> worked in the windows JVM, a Unicode in the Linux JVM, but not the other
> way around.

The "right way" is to just use getString() and not do any translation
yourself. The driver has already done the transcoding from whatever the
DB encoding is, to the internal UTF-16 string representation. You don't
need to mess with byte-based representations.

When you then display that string, you will need to use an appropriate
encoding, obviously..

Can you provide a self-contained testcase that demonstrates getString()
doing the wrong thing?

-O

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message "Miquel van Smoorenburg" 2004-11-08 22:23:31 Re: index not always used when selecting on a date field
Previous Message Woodchuck Bill 2004-11-08 21:50:50 Re: The Big 9?

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2004-11-08 22:07:12 Re: 8.0.0beta4: "copy" and "client_encoding"
Previous Message J. Michael Crawford 2004-11-08 21:12:45 Re: [JDBC] Using Postgres with Latin1 (ISO8859-1)