Re: [HACKERS] Troubles using German Umlauts with JDBC

From: Barry Lind <barry(at)xythos(dot)com>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: 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-10 01:50:15
Message-ID: 3B9C1C57.3080705@xythos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-jdbc

General backend issue.

--Barry

Bruce Momjian wrote:
> 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)
>>
>>
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 2001-09-10 02:57:50 INV_ARCHIVE?
Previous Message Bruce Momjian 2001-09-10 00:15:20 Re: [HACKERS] Troubles using German Umlauts with JDBC

Browse pgsql-jdbc by date

  From Date Subject
Next Message Thomas O'Dowd 2001-09-10 08:27:17 Patch for Statement Escape Processing problems
Previous Message Barry Lind 2001-09-10 01:46:53 Re: Something unusual has occured to cause the driver to fail. NullPointerException