Thread: Big problem inserting Russian characters into Postgres using JDBC
I have never had a problem that has kept me stumped for so long. All I need to do is to simply use my Java application to insert and select Russian characters into the Postgres database. Every time I try to insert the Unicode characters into the DB, the table seems to only be populated with “??????” question mark characters. I am pretty sure that the database itself is configured correctly because I can insert Russian characters at the SQL command prompt. The database has been “configured” with its encoding as Unicode and it says this when I do “\encoding”
Here is what I do and all I come up with is question marks:
String URL = ("jdbc:postgresql://192.168.0.5:5432/russ?encoding=UNICODE");
try {
new org.postgresql.Driver();
db = DriverManager.getConnection(URL, user, pwd);
}
catch (Exception e) { System.out.println("Couldn't connect to the database: " +e); }
}
String rus_word = "\u0424\u042F\u041B\u0414\u0416\u0436\u0434\u043B";
//or
String rus_word = "Ложка";
String insert_stmt = (“INSERT INTO rus (russian) VALUES(‘” + rus_word + “’)”); //Column type for “Russian” is text
try {
statement = db.createStatement();
statement.execute(insert_stmt);
}
catch (Exception e) {
…….
}
Shouldn’t this be a very simple thing to do as to insert multibyte-characters into the database table? What am I forgetting?
I am running Postgres version 7.2.1, JDK 1.3 using the Postgres JDBC 2.
Thanks,
Edd Stanley
eddstanley @ mindspring . com