RE: [JDBC] é converted in é

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

In response to

Responses

Browse pgsql-jdbc by date

  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)