RE: [JDBC] é converted in é - Mailing list pgsql-jdbc
From | Laurent Schweizer |
---|---|
Subject | RE: [JDBC] é converted in é |
Date | |
Msg-id | 004a01ce06ab$51c7dcb0$f5579610$@peoplefone.com Whole thread Raw |
In response to | Re: é converted in é (dmp <danap@ttc-cmc.net>) |
Responses |
Re: é converted in é
|
List | pgsql-jdbc |
Hello, I see that you directly convert special character , the problem is that with my application data are inserted with another process . When they insert the data in the DB all is ok. I have only an issue with JDBC to get them correctly. Laurent -----Message d'origine----- De : pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org] De la part de dmp Envoyé : samedi 9 février 2013 02:42 À : laurent.schweizer@peoplefone.com; pgsql-jdbc@postgresql.org Objet : Re: [JDBC] é converted in é > Laurent Schweizer <laurent(dot)schweizer(at)peoplefone(dot)com> wrote: > > > I have an issue with special character like é. > > > I have as server postgres 9.2, I have created a new DB , encoding > > utf8 > > > > Client is a very simple test class that: > > 1) update a varchar value > > 2) read the same value and print them > > > > If I update the varchar with a special character like é the > > value in the DB is correct ( I check them with another software ) > > but when I read them from my simple java class the value is not > > correct and the é is converted in é > > > > I have added to the connection string the option: > > ?useUnicode=true&characterEncoding=utf8 > > > > And if I do a : "SHOW client_encoding; I get UTF8 > > It is behaving as though the client is using a character encoding > other than UTF8 -- some sort of 8-bit encoding, probably. You must > set client_encoding to match. > > -Kevin Hello Laruent, I have tested the following method with the URL parameters you indicated with PostgreSQL 9.0.1 and the latest driver. Both on a linux and windows systems with the same result of the A and the Acute Latin e properly displaying in a system.out and the frame. I suppose it could be modified slightly to also check and update rather than an insert. danap. private void testInsertUTF(Connection con) { // Method Instances String sqlStatementString; Statement sqlStatement; PreparedStatement pstmt; ResultSet rs; try { sqlStatement = con.createStatement(); con.setAutoCommit(false); sqlStatementString = "DROP TABLE IF EXISTS jdbc_demo"; sqlStatement.execute(sqlStatementString); sqlStatementString = "Create Table jdbc_demo (col VARCHAR(30))"; sqlStatement.execute(sqlStatementString); pstmt = con.prepareStatement("INSERT INTO jdbc_demo VALUES (?), (?)"); pstmt.setString(1, "\u0041"); // A pstmt.setString(2, "\u00E9"); // Acute Latin e pstmt.execute(); sqlStatementString = "SELECT * FROM jdbc_demo"; sqlStatement.execute(sqlStatementString); rs = sqlStatement.executeQuery(sqlStatementString); JPanel panel = new JPanel(); while (rs.next()) { String dataString = rs.getString("col"); System.out.println("col:" + dataString); panel.add(new JLabel(dataString)); } rs.close(); JFrame frame = new JFrame(); frame.getContentPane().add(panel); frame.setSize(200, 200); frame.setVisible(true); sqlStatementString = "DROP TABLE IF EXISTS jdbc_demo"; sqlStatement.execute(sqlStatementString); sqlStatement.close(); pstmt.close(); con.setAutoCommit(true); } catch (SQLException sqle) { System.out.println("SQL Exeception" + sqle); } } -- Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-jdbc
pgsql-jdbc by date: