Re: [HACKERS] Troubles using German Umlauts with JDBC
От | Bruce Momjian |
---|---|
Тема | Re: [HACKERS] Troubles using German Umlauts with JDBC |
Дата | |
Msg-id | 200109110512.f8B5CTZ27106@candle.pha.pa.us обсуждение исходный текст |
Список | 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@lab.applinet.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@postgresql.org) > > > > -- > Bruce Momjian | http://candle.pha.pa.us > pgman@candle.pha.pa.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@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
В списке pgsql-jdbc по дате отправления: