Обсуждение: JDBC driver should use database encoding

Поиск
Список
Период
Сортировка

JDBC driver should use database encoding

От
Martin Kuba
Дата:
Hi,

Postgres 6.4.2 has multibyte support, so database can be
in one of several encodings. But the JDBC driver uses
for fetching data this method:
src/interfaces/jdbc/postgresql/ResultSet.java line 164:
return new String(this_row[columnIndex - 1]);

It means that not the database internal encoding, but 
the default encoding of client JVM will be used for
converting 8-bit characters to 16-bit UNICODE characters.

In postgres 6.5beta is the same code, so I think next
release will have the same bug.

Is it difficult to get the database encoding and use
it for converting bytes to Strings ? Is anybody planning
to do it ? If not, how can I do it ?

Martin
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  INET, a.s.                          Mgr. Martin
Kuba
Kralovopolska 139                  e-mail: makub@inet.cz 601 12 Brno                      WWW:
http://www.inet.cz/~makub/CzechRepublic                    tel: +420-5-41242414/33
 
--------------------------------------------------------------------
PGP fingerprint = D8 57 47 E5 36 D2 C1 A1  C3 48 B2 59 00 58 42
27http://wwwkeys.cz.pgp.net:11371/pks/lookup?op=index&search=makub
--------------------------------------------------------------------


Re: [INTERFACES] JDBC driver should use database encoding

От
Tatsuo Ishii
Дата:
> Postgres 6.4.2 has multibyte support, so database can be
> in one of several encodings. But the JDBC driver uses
> for fetching data this method:
>  
> src/interfaces/jdbc/postgresql/ResultSet.java line 164:
> return new String(this_row[columnIndex - 1]);
> 
> It means that not the database internal encoding, but 
> the default encoding of client JVM will be used for
> converting 8-bit characters to 16-bit UNICODE characters.
> 
> In postgres 6.5beta is the same code, so I think next
> release will have the same bug.
> 
> Is it difficult to get the database encoding and use
> it for converting bytes to Strings ? Is anybody planning
> to do it ? If not, how can I do it ?

Here in Japan we already have such a patch (for 6.4.2). I belive it
can be used for any language, but I will ask the author of the patch
to make sure that.
---
Tatsuo Ishii



Re: [INTERFACES] JDBC driver should use database encoding

От
Peter T Mount
Дата:
On Fri, 14 May 1999, Martin Kuba wrote:

> Hi,
> 
> Postgres 6.4.2 has multibyte support, so database can be
> in one of several encodings. But the JDBC driver uses
> for fetching data this method:
>  
> src/interfaces/jdbc/postgresql/ResultSet.java line 164:
> return new String(this_row[columnIndex - 1]);
> 
> It means that not the database internal encoding, but 
> the default encoding of client JVM will be used for
> converting 8-bit characters to 16-bit UNICODE characters.
> 
> In postgres 6.5beta is the same code, so I think next
> release will have the same bug.
> 
> Is it difficult to get the database encoding and use
> it for converting bytes to Strings ? Is anybody planning
> to do it ? If not, how can I do it ?

I haven't had chance to look at Unicode support yet, but if you can think
of a way of implementing it without breaking 8bit support, I'd be
interested.

Peter

--       Peter T Mount peter@retep.org.uk     Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgresJava PDF Generator: http://www.retep.org.uk/pdf



Re: [INTERFACES] JDBC driver should use database encoding

От
Peter T Mount
Дата:
On Fri, 14 May 1999, Martin Kuba wrote:

> Hi,
> 
> Postgres 6.4.2 has multibyte support, so database can be
> in one of several encodings. But the JDBC driver uses
> for fetching data this method:
>  
> src/interfaces/jdbc/postgresql/ResultSet.java line 164:
> return new String(this_row[columnIndex - 1]);
> 
> It means that not the database internal encoding, but 
> the default encoding of client JVM will be used for
> converting 8-bit characters to 16-bit UNICODE characters.
> 
> In postgres 6.5beta is the same code, so I think next
> release will have the same bug.
> 
> Is it difficult to get the database encoding and use
> it for converting bytes to Strings ? Is anybody planning
> to do it ? If not, how can I do it ?

Guess what, I've just found a patch someone sent me earlier in the year,
implementing some Unicode support. If I get chance, I'll take a look at
it, but I don't think I'll get it into 6.5.

Peter

--       Peter T Mount peter@retep.org.uk     Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgresJava PDF Generator: http://www.retep.org.uk/pdf