I am trying to store UTF-8 encoded text with MM.MySQL 2.0.13 driver. I am
using MySQL 3.23.49, MM.MySQL 2.0.13 JDBC driver, j2sdk1.4.0.
I have had success with the code below (which stores the UTF-8 as a binary
stream), but am wondering if there is an easier way. Specifically I am
wondering about the MM.MySQL useUnicode and characterEncoding params. The
code below works regardless how you set these params.
Do useUnicode and characterEncoding allow you to store UTF-8 with regular
.setString() methods? What exactly do they do? I can't find any
explanation more than:
useUnicode should the driver use Unicode character encodings when handling
strings? (true/false) false
characterEncoding if useUnicode is true, what character encoding should the
driver use when dealing with strings? none
Is setBinaryStream() the only way to store UTF-8?
Thank you very much in advance!!!
John D. Stein
// Store a unicode character (u) in the database and see if what you get
// back from the database (urc) equals the original string you put in.
public void testBinaryUTF8() throws Exception {
String u = "\u65E5";
byte[] ua = u.getBytes("UTF-8");
ByteArrayInputStream is = new ByteArrayInputStream(ua);
String updateSQL = "UPDATE sp_i18n_dev.lengthtest SET n255 = ? WHERE
id = 1";
String selectSQL = "SELECT n255 from sp_i18n_dev.lengthtest WHERE id =
1";
Connection conn = DataSource.getConn(dsName);
PreparedStatement pst = conn.prepareStatement(updateSQL);
pst.setBinaryStream(1, is, ua.length);
pst.execute();
pst = conn.prepareStatement(selectSQL);
ResultSet rs = pst.executeQuery();
rs.next();
BufferedReader brin = new BufferedReader(new
InputStreamReader(rs.getBinaryStream(1), "UTF-8"));
String urc = brin.readLine();
System.out.println(
"Original string equals string from db: " +
u.equals(urc));
DataSource.cleanup(conn, dsName, pst, rs);
}
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php