Hallo,
ich habe ein Problem mit der Darstellung von Umlauten in postgres mit Java.
Unter Google habe ich schon einiges gefunden, aber nichts hat geholfen.
Ich verwende die Windows-Version postgresql-8.2.3-1, den JDBC-Treiber postgresql-8.2-504.jdbc3.jar und die Javaversion 1.5.
Unter der Konsole klappt alles mit Umlauten. Ich lege eine DB mit charset LATIN1 an:
createdb mydb -E LATIN1.
Tabelle anlegen:
create table test (val1 varchar(100));
Wert einchecken:
insert into test values(‘Gewässer’);
mit
select * from test
bekomme ich als Ausgabe auch “Gewässer”. Soweit so gut. Mit java klappt das ganze dann aber nicht mehr, die Umlaute werden nicht dargestellt.
Mein Programm sind so aus:
String url = “jdbc:postgresql://localhost/mydb?charSet=LATIN1”;
//alternativ auch
//String url = “jdbc:postgresql://localhost/mydb?charSet=ISO-8859-1”;
try {
DriverManager.registerDriver(new org.postgresql.Driver());
// Bei … ist das Passwort einzusetzen.
Properties p = new Properties();
p.put(“user”, “xxx”);
p.put(“password”, “xxx”);
p.put(“charSet”, “LATIN1”);
//alternativ auch
//p.put(“charSet”, “ISO-8859-1”);
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement ();
ResultSet rset =
stmt.executeQuery(“SELECT * FROM test”);
while (rset.next()) {
System.out.println("DB-Ausgabe: " + rset.getString(“val1”));
}
System.out.println(“Test-Ausgabe: Gewässer” );
} catch (SQLException e) {
System.out.println(e);
}
Die Ausgabe ist dann:
DB-Ausgabe: Gew?sser
Test-Ausgabe: Gewässer
Ich habe auch schon versucht, das charSet nur über URL oder nur über Properties anzugeben…hilft aber alles nichts.
Für Hilfe wäre ich sehr dankbar!!
Gruß,
Patrick