Re: é converted in é

From: dmp <danap(at)ttc-cmc(dot)net>
To: laurent(dot)schweizer(at)peoplefone(dot)com, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: é converted in é
Date: 2013-02-09 01:41:42
Message-ID: 5115A956.5020804@ttc-cmc.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

> 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);
}
}

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Laurent Schweizer 2013-02-09 09:48:54 RE: [JDBC] Re: [JDBC] Re: [JDBC] é converted in Ã(c)
Previous Message dmp 2013-02-09 01:35:32 Contributors Mailing Lists User lists Developer lists Regional lists Associations User groups Project lists pgadmin-hackers pgadmin-support pgsql-jdbc pgsql-odbc pgsql-pkg-debian pgsql-pkg-yum psycopg Inactive lists IRC Featured Users International Sites Propaganda Resources Weekly News Re: [JDBC] é converted in é