Обсуждение: Re: [INTERFACES] jdbc: v7.1 bug (letter accent)

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

Re: [INTERFACES] jdbc: v7.1 bug (letter accent)

От
Barry Lind
Дата:
What character set encoding is your database using?  (select
getdatabaseencoding();)
My guess is that your database was created with the wrong character set
encoding.

thanks,
--Barry


Jean-Francois Burdet wrote:
>
> Hi,
>
> I'm doing some tests to migrate an PG7.0.2 database to an PG7.1beta3.
> This database contains letter with accent from french (like é in
> HTML or the word café).
>
> When using the postgresql.jar from pg7.0.2, rs.getString("name") gives
> corrects results (like 'café') , but
> when I move to the postgresql.jar compiled from PG7.1beta3 bundle letter
> with accent are converted to '?' (like 'caf?') ...
>
> Any one aware of this problem ? (and it's solution ?)
>
> Thanks,
>
> JF Burdet
>
> My config is :
> - Mandrake Linux 7.1
> - JDK 1.3
> - Tomcat 3.2.1

Re: Re: [INTERFACES] jdbc: v7.1 bug (letter accent)

От
Jean-Francois Burdet
Дата:
After doing some search, I found that encoding used for the JDBC
connection
default to the JVM encoding, so I had add a Property to the connection :
info.put("user","fsft");
info.put("password","fsft");
info.put("charSet", "ISO8859_1");
dbCon = DriverManager.getConnection(url,info);

And quoted from Barry :
>  Let me explain a little bit more what is happening here.
>  In 7.0, the jdbc driver always used the clients default encoding to
>  convert text returned from the database into java Strings. This
>  obviously isn't correct when the DB happens to be running with a
>  different character set than the client.
>  So in 7.1 the jdbc drivers have been changed to detect the character set
>  of the database (by making the select getdatabaseencoding(); call). So
>  if your database was created with the wrong character set (i.e. not
>  latin1), then this change in behaviour would account for your problem.
>  Likewise if the database was created with the correct character set, it
>  should work fine without setting any additional properties.
>  As you point out, in 7.1 it is also possible to override the character
>  set used by setting the property you have mentioned below. However this
>  should not be necessary if the database is created with the correct
>  character set.