update语句似乎只适用于一个或三个字节长的UTF-8字符。
我的测试代码
def sql = sql.newInstance('jdbc:mysql://.../...?useUnicode=true&characterEncoding=UTF-8',
'...', '...', 'com.mysql.jdbc.Driver')
String value = 'β'
sql.execute('UPDATE Kldb_SynonymVersion SET synonyms=? WHERE id=11940', [value])失败,错误为
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'synonyms' at row 1在com.mysql.jdbc.MysqlIO.checkErrorPacket中。
它可以与value="a“或value =‘value’一起使用。
我正在使用
java 1.6.0_20
mysql 5.0.26
mysql-连接器5.1.13
表的字符集设置为utf8。
我知道我可以禁用截断,但是我只能避免异常并得到一个无效的字符('?')在数据库里。
发布于 2010-12-28 02:35:50
确定MySQL列的列编码为UTF-8。
MySQL驱动程序能够将unicode字符写入ASCII列,甚至可以正确读取它们,因此该问题可以在很长一段时间内不被通知。
https://stackoverflow.com/questions/3140538
复制相似问题