Re: é converted in Ã(c) - Mailing list pgsql-jdbc

From dmp
Subject Re: é converted in Ã(c)
Date
Msg-id 51169711.4030906@ttc-cmc.net
Whole thread Raw
In response to Re: [JDBC] RE: [JDBC] é converted in Ã(c)  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-jdbc
Dave,

That is exaclty what I suspect also, just like you guys have already
indicated. This is not a pgJDBC issue.

danap.


Dave Cramer wrote:
> I am thinking that it is the printing that is changing the character.
>  From your test the server is not local what is the locale of the Linux box
>
> On 2013-02-09 12:42 PM, "Laurent Schweizer"
> <laurent.schweizer@peoplefone.com
> <mailto:laurent.schweizer@peoplefone.com>> wrote:
>
>     Dear all,
>
>     Bellow I have attached the code that I use to do the test, as you
>     can see it's very simple.
>
>     I just do the test on windows (via Eclipse) and encoding is OK !
>     When I run same class on Linux , in command line, the encoding is
>     not OK.
>
>     Did I need to set some specific parameters on linux ?
>
>     Regards
>
>     Laurent
>
>
>
>     import java.io.UnsupportedEncodingException;
>     import java.nio.ByteBuffer;
>     import java.nio.CharBuffer;
>     import java.nio.charset.Charset;
>     import java.sql.*;
>     public class Testing {
>
>                Connection conn;
>              /**
>               * @param args
>               */
>              public static void main(String[] args) {
>                      // TODO Auto-generated method stub
>                       new Testing();
>
>              }
>
>
>
>        public Testing ()
>        {
>          try
>          {
>
>            Class.forName("org.postgresql.Driver").newInstance();
>            String url =
>     "jdbc:postgresql://95.128.80.38/testchar?useUnicode=true&characterEncoding=utf8
>     <http://95.128.80.38/testchar?useUnicode=true&characterEncoding=utf8>";
>            conn = DriverManager.getConnection(url, "postgres", "");
>            doTests();
>            conn.close();
>          }
>          catch (ClassNotFoundException ex)
>     {System.err.println(ex.getMessage());}
>          catch (IllegalAccessException ex)
>     {System.err.println(ex.getMessage());}
>          catch (InstantiationException ex)
>     {System.err.println(ex.getMessage());}
>          catch (SQLException ex)
>     {System.err.println(ex.getMessage());}
>        }
>
>        private void doTests()
>        {
>          doSelectTest();
>
>
>        }
>
>        private void doSelectTest()
>        {
>
>       //   String query1 = "SET client_encoding = 'LATIN9';";
>
>
>          String query = "SELECT input FROM test ";
>          try
>          {
>
>            //  Statement st2 = conn.createStatement();
>              // st2.execute(query1);
>            Statement st = conn.createStatement();
>            ResultSet rs = st.executeQuery(query);
>            while (rs.next())
>            {
>              String s = rs.getString(1);
>              System.out.println("val:"+s );
>
>            }
>          }
>          catch (SQLException ex)
>          {
>            System.err.println(ex.getMessage());
>          }
>
>
>          /*
>          String queryup = "UPDATE test set input ='snom 320 é' WHERE id=1";
>          try
>          {
>            Statement st = conn.createStatement();
>             st.execute(queryup);
>
>          }
>          catch (SQLException ex)
>          {
>            System.err.println(ex.getMessage());
>          }*/
>
>        }
>
>     -----Message d'origine-----
>     De : pgsql-jdbc-owner@postgresql.org
>     <mailto:pgsql-jdbc-owner@postgresql.org>
>     [mailto:pgsql-jdbc-owner@postgresql.org
>     <mailto:pgsql-jdbc-owner@postgresql.org>] De la part de dmp
>     Envoyé : samedi 9 février 2013 17:55
>     À : Laurent Schweizer; pgsql-jdbc@postgresql.org
>     <mailto:pgsql-jdbc@postgresql.org>
>     Objet : Re: [JDBC] é converted in é
>
>     Hello Laurent,
>
>     Use the Method provided to compare the two inserts methods, the one
>     I have demostrated and your process. Reply back with the modified
>     method, code, so that we may have a way of duplicating the error you
>     are describing.
>
>     I modified the Method this morning and used a update on the extended
>     ASCII chararcter and was still able to to a system.out and placement
>     in JLabel to observe the correct results.
>
>     If you drive to a garage and ask the mechanic to fix your lights on
>     your car because they do not work and he/she turns them on and they
>     work, how do you expect the mechanic to help?
>
>     Provide sample code demostrating your issue and perhaps help can be
>     more forth comming.
>
>     danap.
>
>     Laurent Schweizer wrote:
>      > 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>
>      > [mailto: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
>     <mailto:laurent.schweizer@peoplefone.com>;
>      > pgsql-jdbc@postgresql.org <mailto: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
>     <mailto:pgsql-jdbc@postgresql.org>) To make
>      > changes to your subscription:
>      > http://www.postgresql.org/mailpref/pgsql-jdbc
>      >
>      >
>      >
>
>
>
>     --
>     Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org
>     <mailto:pgsql-jdbc@postgresql.org>) To make changes to your
>     subscription:
>     http://www.postgresql.org/mailpref/pgsql-jdbc
>
>
>
>     --
>     Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org
>     <mailto:pgsql-jdbc@postgresql.org>)
>     To make changes to your subscription:
>     http://www.postgresql.org/mailpref/pgsql-jdbc
>



pgsql-jdbc by date:

Previous
From: dmp
Date:
Subject: Re: RE: [JDBC] é converted in é
Next
From: Vitalii Tymchyshyn
Date:
Subject: Re: [HACKERS] JPA + enum == Exception