getTables() doesn't handle umlauts correctly

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: getTables() doesn't handle umlauts correctly
Date: 2010-11-21 22:44:56
Message-ID: icc7cc$19a$1@dough.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi,

I noticed that the driver will return incorrect values for table names that contain umlauts. Consider the following code:

Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "postgres", "password");
stmt = con.createStatement();
stmt.executeUpdate("create table public.umlaut_test_ö (id integer)");
rs = con.getMetaData().getTables(null, "public", "umlaut_test%", null);
while (rs.next())
{
System.out.println(rs.getString("TABLE_NAME"));
}

It will not display the table name correctly.

Now on the console this might be an encoding problem of the client, but the name is also not displayed correctly, when e.g. using a Swing JLabel component which is fully UTF-8 compatible.

Is there a connection parameter for the driver to return that correctly or is this a driver bug?

I'm using the 9.0-801 driver with a 9.0.1 database running on Windows XP

Regards
Thomas

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Itagaki Takahiro 2010-11-22 06:37:31 Re: [JDBC] Support for JDBC setQueryTimeout, et al.
Previous Message Radosław Smogura 2010-11-21 18:49:28 Experimental JDBC driver