Re: RE: [JDBC] é converted in é

Поиск
Список
Период
Сортировка
От dmp
Тема Re: RE: [JDBC] é converted in é
Дата
Msg-id 51169655.3010501@ttc-cmc.net
обсуждение исходный текст
Ответ на RE: [JDBC] é converted in é  ("Laurent Schweizer" <laurent.schweizer@peoplefone.com>)
Список pgsql-jdbc
Hello Laurent,

I indicated that I have demostrated with the Test Method I posting a
functional sample code that does not produce the result you are indicating
on both a Windows and Linux platform.

The code you posted is useless. Show us your insertion process with
a valid test case like I have demostrated.

danap.

Laurent Schweizer 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";
>        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] De la part de dmp
> Envoyé : samedi 9 février 2013 17:55
> À : Laurent Schweizer; 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
withthe 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.outand 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
turnsthem 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] 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
>>
> --
> 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 по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: [JDBC] RE: [JDBC] é converted in Ã(c)
Следующее
От: dmp
Дата:
Сообщение: Re: é converted in Ã(c)