JDBC and Accents

Started by Loïc Courtoisalmost 25 years ago10 messagesgeneral
Jump to latest
#1Loïc Courtois
lcourtois@netpartage.fr

Hello,

I have some problems to display the accents in my db, using the JDBC and
postgres 7.1.

Apparently, all accents are replaced by a '?'.

Thanks .

Loic Courtois
Netpartage

#2tony
tony@animaproductions.com
In reply to: Loïc Courtois (#1)
Re: JDBC and Accents

Peter can we help in any way with getting the JDBC to work with european character sets??

Such as in testing help with documentation whatever

Cheers

Tony Grant

--
RedHat Linux on Sony Vaio C1XD/S
http://www.animaproductions.com/linux2.html

#3Marko Kreen
markokr@gmail.com
In reply to: Loïc Courtois (#1)
Re: JDBC and Accents

On Fri, Apr 27, 2001 at 01:56:38AM +0200, Lo�c Courtois wrote:

Hello,

I have some problems to display the accents in my db, using the JDBC and
postgres 7.1.

Apparently, all accents are replaced by a '?'.

What is your database encoding?

You can insert whatever stuff you want into db and
psql displays it fine - it does not care what it is.

But JDBC 7.1 does use database encoding for understanding
stuff it gets and translating it to Java strings. So if your
db encoding is SQL_ASCII but data is LATIN1 you are screwed.
Same with data in LATIN1 and db in UNICODE. etc...

--
marko

#4Loïc Courtois
lcourtois@netpartage.fr
In reply to: Loïc Courtois (#1)
Re: JDBC and Accents

On Fri, Apr 27, 2001 at 01:56:38AM +0200, Lo�c Courtois wrote:

Hello,

I have some problems to display the accents in my db, using the JDBC and
postgres 7.1.

Apparently, all accents are replaced by a '?'.

What is your database encoding?

You can insert whatever stuff you want into db and
psql displays it fine - it does not care what it is.

But JDBC 7.1 does use database encoding for understanding
stuff it gets and translating it to Java strings. So if your
db encoding is SQL_ASCII but data is LATIN1 you are screwed.
Same with data in LATIN1 and db in UNICODE. etc...

My database encoding is SQL_ASCII...

Is there any temporary solutions, or may a convert the db in an other
encoding?

Thanks

Loic Courtois

#5tony
tony@animaproductions.com
In reply to: Marko Kreen (#3)
Re: JDBC and Accents

On 27 Apr 2001 14:26:14 +0200, Marko Kreen wrote:

What is your database encoding?

You can insert whatever stuff you want into db and
psql displays it fine - it does not care what it is.

But JDBC 7.1 does use database encoding for understanding
stuff it gets and translating it to Java strings. So if your
db encoding is SQL_ASCII but data is LATIN1 you are screwed.
Same with data in LATIN1 and db in UNICODE. etc...

How do I set it?

Searching docs for "database encoding" gives:

Sorry, but search returned no results.

Is this the locale value that can be passed at start up? I will document
this in my Ultradev - Posgresql HOWTO because it is JDBC related.

Cheers

Tony Grant

--
RedHat Linux on Sony Vaio C1XD/S
http://www.animaproductions.com/linux2.html

#6Peter T Mount
peter@retep.org.uk
In reply to: tony (#2)
Re: JDBC and Accents

Quoting Tony Grant <tony@animaproductions.com>:

Peter can we help in any way with getting the JDBC to work with european
character sets??

Such as in testing help with documentation whatever

In theory it should work when the backend is compiled for Unicode...

PS: JDBC stuff should go to the JDBC list rather than General or Interfaces...

Peter

--
Peter Mount peter@retep.org.uk
PostgreSQL JDBC Driver: http://www.retep.org.uk/postgres/
RetepPDF PDF library for Java: http://www.retep.org.uk/pdf/

#7tony
tony@animaproductions.com
In reply to: Loïc Courtois (#4)
Re: JDBC and Accents

On 27 Apr 2001 14:36:21 +0200, Lo�c Courtois wrote:

My database encoding is SQL_ASCII...

Is there any temporary solutions, or may a convert the db in an other
encoding?

OK j'ai trouv� - en anglais pour la liste

Do a pg_dump of your database

Create a new database with "createdb -E LATIN1 databasename"

Reimport your data.

Cheers

Tony Grant

--
RedHat Linux on Sony Vaio C1XD/S
http://www.animaproductions.com/linux2.html

#8Marko Kreen
markokr@gmail.com
In reply to: tony (#5)
Re: JDBC and Accents

On Fri, Apr 27, 2001 at 02:37:48PM +0200, Tony Grant wrote:

On 27 Apr 2001 14:26:14 +0200, Marko Kreen wrote:

What is your database encoding?

You can insert whatever stuff you want into db and
psql displays it fine - it does not care what it is.

But JDBC 7.1 does use database encoding for understanding
stuff it gets and translating it to Java strings. So if your
db encoding is SQL_ASCII but data is LATIN1 you are screwed.
Same with data in LATIN1 and db in UNICODE. etc...

How do I set it?

initdb --ecnoding ENC sets the template* encoding, this gets
used when you dont specify the encoding in db creation
time.

CREATE DATABASE xx WITH ECCODING='ENC';
createdb xx --encoding ENC
same thing, sets the new database encoding.

and there is commands
SET CLIENT_ENCODING='ENC';
SET SERVER_ENCODING='ENC';

which set the encoding for one session. SERVER_ENCODING is
r/o though. CLIENT_ENCODING Im not so sure, probably
commands the server to do on-the-fly encoding conversion
for client. I expect this needs correct database encoding...

Searching docs for "database encoding" gives:

Sorry, but search returned no results.

It _is_ documented somewhere but I cant do much
surfing at the moment coz Iam sitting behind a 80x25 Video
Terminal...

Is this the locale value that can be passed at start up? I will document
this in my Ultradev - Posgresql HOWTO because it is JDBC related.

Look in docs help for above commands.

--
marko

#9Marko Kreen
markokr@gmail.com
In reply to: Loïc Courtois (#4)
Re: JDBC and Accents

On Fri, Apr 27, 2001 at 02:36:21PM +0200, Lo�c Courtois wrote:

On Fri, Apr 27, 2001 at 01:56:38AM +0200, Lo�c Courtois wrote:

Hello,

I have some problems to display the accents in my db, using the JDBC and
postgres 7.1.

Apparently, all accents are replaced by a '?'.

What is your database encoding?

You can insert whatever stuff you want into db and
psql displays it fine - it does not care what it is.

My database encoding is SQL_ASCII...

Is there any temporary solutions, or may a convert the db in an other
encoding?

Correct solutions is really dump database, create db with right
encoding and restore.

But for temporary solution ;) you could use PostgreSQL 7.0
JDBC driver, which does not support those db encodings...

--
marko

#10Peter T Mount
peter@retep.org.uk
In reply to: Loïc Courtois (#1)
Re: JDBC and Accents

Quoting Tony Grant <tony@animaproductions.com>:

On 27 Apr 2001 08:52:33 -0400, Peter T Mount wrote:

In theory it should work when the backend is compiled for Unicode...

PS: JDBC stuff should go to the JDBC list rather than General or

Interfaces...

Sorry! OK I'll subscribe over there

That's ok. I'm trying to get people to use the pgsql-jdbc list instead of
general because of the sheer volume of emails. I'm dropping general as most of
it is of no use for me personally except the JDBC content, and conversely would
save me a lot of time both downloading and reading...

Peter

--
Peter Mount peter@retep.org.uk
PostgreSQL JDBC Driver: http://www.retep.org.uk/postgres/
RetepPDF PDF library for Java: http://www.retep.org.uk/pdf/