读书人

MySQL java.sql.SQLException: Incorr

发布时间: 2012-08-25 10:06:20 作者: rapoo

MySQL java.sql.SQLException: Incorrect string value ……

//注: 里面的*不是导致问题的特殊字符,因为特殊字符无法显示,总之是某个转成utf8后有4bytes的字符

背景:
数据库编码,建表编码,Content字段编码都设置为utf8,collation是默认的utf8_default(也尝试过修改为其他的,未果,似乎不是collation的问题)

解决方案:
修改Content字段为MEDIUMBLOB(原来是MEDIUMTEXT),并且把SELECT语句修改成

SELECT CAST(Content AS CHAR CHARACTER SET utf8) AS Content ....

INSERT语句不需要修改,测试ok

参考资料

    http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html CAST函数用法 http://bugs.mysql.com/bug.php?id=30131 07年讨论到10年,结论是: Not a bug http://bit.ly/Ao3iJO 问题可能是因为某些unicode字符转成utf8之后变成了4个字节

读书人网 >Mysql

热点推荐