From: | "Laurent Schweizer" <laurent(dot)schweizer(at)peoplefone(dot)com> |
---|---|
To: | <pgsql-jdbc(at)postgresql(dot)org> |
Subject: | RE: [JDBC] é converted in é |
Date: | 2013-02-09 09:53:31 |
Message-ID: | 004a01ce06ab$51c7dcb0$f5579610$@peoplefone.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)postgresql(dot)org
[mailto:pgsql-jdbc-owner(at)postgresql(dot)org] De la part de dmp
Envoyé : samedi 9 février 2013 02:42
À : laurent(dot)schweizer(at)peoplefone(dot)com; pgsql-jdbc(at)postgresql(dot)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(at)postgresql(dot)org) To make changes
to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
From | Date | Subject | |
---|---|---|---|
Next Message | Dave Cramer | 2013-02-09 10:48:22 | Re: [JDBC] Re: [JDBC] Re: [JDBC] é converted in Ã(c) |
Previous Message | Laurent Schweizer | 2013-02-09 09:48:54 | RE: [JDBC] Re: [JDBC] Re: [JDBC] é converted in Ã(c) |