Re: jdbc mysql: encoding utf-8 to latin1?
Lew wrote:
Alexander Burger wrote:
well I tried:
Class.forName("com.mysql.jdbc.Driver").newInstance();
You don't need to create an instance of the driver, not even to simply
throw
it away. The driver registration occurs during the class initialization
triggered by 'forName()'.
ok, thank you. I will try it.
You should indent far less aggressively for Usenet posts, a maximum of
four spaces per indent level.
if(this.dbLoginTimeOut != null){
DriverManager.setLoginTimeout(this.dbLoginTimeOut.intValue()
);
}
//Properties info = new Properties();
//info.put("user", this.dbuser);
//info.put("password", this.dbpwd);
//info.put("charSet", this.strEnCodingToFromDB);
//"utf-8");
//info.put("characterEncoding",this.strEnCodingToFromDB);
//conn = DriverManager. getConnection(this.dburl,
info);
conn =
DriverManager.getConnection(this.dburl,this.dbuser,this.dbpwd);
stmt = conn.createStatement();
//change chars
Charset latin1 = Charset.forName("ISO-8859-1");
byte[] b = strRequest.getBytes(latin1);
System.out.println("strRequest.getBytes(latin1) :
");
for (int i = 0; i< b.length; i++) {
System.out.printf("%X ", b[i]);
}
System.out.println("new String(b, latin1) : " + new
String(b,
latin1));
resultSet = stmt.executeQuery(new String(b, latin1));
The issue isn't the character set of the query but of the data. Changing
the character set of the query will have no effect.
is there something wrong? well I have completely no effect in database.
The system.out is correct.
Exactly so.
ok, I found the problem. Look my answer in thread.
thank you
regards
Alex