Skip site navigation (1) Skip section navigation (2)

Re: [HACKERS] Troubles using German Umlauts with JDBC

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: pgman(at)candle(dot)pha(dot)pa(dot)us
Cc: Barry Lind <barry(at)xythos(dot)com>, Rene Pijlman <rene(at)lab(dot)applinet(dot)nl>, pgsql-jdbc(at)postgresql(dot)org, Dave Cramer <Dave(at)micro-automation(dot)net>
Subject: Re: [HACKERS] Troubles using German Umlauts with JDBC
Date: 2001-09-11 05:12:29
Message-ID: 200109110512.f8B5CTZ27106@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-jdbc
Can I ask, isn't this the meaning if locale?  Is the problem that we
need locale capability in jdbc?  We have a --enable-locale configure
option.



> 
> Is this a jdbc issue or a general backend issue?
> 
> 
> > Bruce,
> > 
> > I think the TODO item should be:
> > 
> > Ability to set character set for a database without multibyte enabled
> > 
> > Currently createdb -E (and the corresponding create database sql 
> > command) only works if multibyte is enabled.  However it is useful to 
> > know which single byte character set is being used even when multibyte 
> > isn't enabled.  Currently there is no way to specify which single byte 
> > character set a database is using (unless you compile with multibyte).
> > 
> > thanks,
> > --Barry
> > 
> > 
> > Bruce Momjian wrote:
> > > I can add something if people agree there is an issue here.
> > > 
> > > 
> > >>I've added a new section "Character encoding" to
> > >>http://lab.applinet.nl/postgresql-jdbc/, based on the
> > >>information from Dave and Barry.
> > >>
> > >>I haven't seen a confirmation from pgsql-hackers or Bruce yet
> > >>that this issue will be added to the Todo list. I'm under the
> > >>impression that the backend developers don't see this as a
> > >>problem.
> > >>
> > >>Regards,
> > >>Ren? Pijlman
> > >>
> > >>On Tue, 04 Sep 2001 10:40:36 -0700, Barry Lind wrote:
> > >>
> > >>>I would like to add one additional comment.  In current sources the jdbc 
> > >>>driver detects (through a hack) that the server doesn't have multibyte 
> > >>>enabled and then ignores the SQL_ASCII return value and defaults to the 
> > >>>JVM's character set instead of using SQL_ASCII.
> > >>>
> > >>>The problem boils down to the fact that without multibyte enabled, the 
> > >>>server has know way of specifiying which 8bit character set is being 
> > >>>used for a particular database.  Thus a client like JDBC doesn't know 
> > >>>what character set to use when converting to UNICODE.  Thus the best we 
> > >>>can do in JDBC is use our best guess (JVM character set is probably the 
> > >>>best default), and allow the user to explicitly specify something else 
> > >>>if necessary.
> > >>>
> > >>>thanks,
> > >>>--Barry
> > >>>
> > >>>Rene Pijlman wrote:
> > >>>
> > >>>>[forwarding to pgsql-hackers and Bruce as Todo list maintainer,
> > >>>>see comment below]
> > >>>>
> > >>>>[insert with JDBC converts Latin-1 umlaut to ?]
> > >>>>On 04 Sep 2001 09:54:27 -0400, Dave Cramer wrote:
> > >>>>
> > >>>>
> > >>>>>You have to set the encoding when you make the connection.
> > >>>>>
> > >>>>>Properties props = new Properties();
> > >>>>>props.put("user",user);
> > >>>>>props.put("password",password);
> > >>>>>props.put("charSet",encoding);
> > >>>>>Connection con = DriverManager.getConnection(url,props);
> > >>>>>where encoding is the proper encoding for your database
> > >>>>>
> > >>>>>
> > >>>>For completeness, I quote the answer Barry Lind gave yesterday. 
> > >>>>
> > >>>>"[the driver] asks the server what character set is being used
> > >>>>for the database.  Unfortunatly the server only knows about
> > >>>>character sets if multibyte support is compiled in. If the
> > >>>>server is compiled without multibyte, then it always reports to
> > >>>>the client that the character set is SQL_ASCII (where SQL_ASCII
> > >>>>is 7bit ascii).  Thus if you don't have multibyte enabled on the
> > >>>>server you can't support 8bit characters through the jdbc
> > >>>>driver, unless you specifically tell the connection what
> > >>>>character set to use (i.e. override the default obtained from
> > >>>>the server)."
> > >>>>
> > >>>>This really is confusing and I think PostgreSQL should be able
> > >>>>to support single byte encoding conversions without enabling
> > >>>>multi-byte. 
> > >>>>
> > >>>>To the very least there should be a --enable-encoding-conversion
> > >>>>or something similar, even if it just enables the current
> > >>>>multibyte support.
> > >>>>
> > >>>>Bruce, can this be put on the TODO list one way or the other?
> > >>>>This problem has appeared 4 times in two months or so on the
> > >>>>JDBC list.
> > >>>>
> > >>>>Regards,
> > >>>>Ren? Pijlman <rene(at)lab(dot)applinet(dot)nl>
> > >>>>
> > >>---------------------------(end of broadcast)---------------------------
> > >>TIP 6: Have you searched our list archives?
> > >>
> > >>http://www.postgresql.org/search.mpl
> > >>
> > >>
> > > 
> > 
> > 
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
> > 
> 
> -- 
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Responses

pgsql-jdbc by date

Next:From: Ryouichi MatsudaDate: 2001-09-11 11:41:24
Subject: Patch for doc/jdbc.sgml
Previous:From: Hiroyuki YatabeDate: 2001-09-11 05:10:57
Subject: A proposal for jdbc.sgml(in 7.1.3 doc)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group