Zdravim jeste jednou.
Zapasim tady s vkladanim UTF8 textu do MySQL 5.0 databaze. Udelal jsem
si maly testcase, kde tabulka je definovana nasledovne:
CREATE TABLE test (msg TEXT) CHARACTER SET utf8;
Pak mam kousicek kodu, ktery do tabulky vlozi UTF8 string a hned ho
zase vyselectuje a vypise:
String url = "jdbc:mysql://hostname/xxx";
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
stmt.execute("SET NAMES 'utf8'");
stmt.execute("SET CHARACTER SET 'utf8'");
/*
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO test
(msg) VALUES (?)");
pstmt.setString(1, "Žluťoučký kůň");
pstmt.executeUpdate();
*/
ResultSet rset = stmt.executeQuery("SELECT msg FROM test LIMIT 1");
rset.next();
String msg = rset.getString(1);
System.out.println(">>> " + msg);
Pokud do tabulky neco vlozim pomoci 'mysql' klienta tak to javovy
program vypise spravne. Ale kdyz odkomentuju ten insert tak se do
tabulky vlozi misto vsech akcentovanych pismen jen otazniky.
Muzete mi prosim nekdo poradit jak zaridit UTF8-clean spojeni mezi JDBC a MySQL?
Predem diky!
Goo