首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

MySQL java.sql.SQLException: Incorrect string value …

2012-08-25 
MySQL java.sql.SQLException: Incorrect string value ……//注: 里面的*不是导致问题的特殊字符,因为特殊

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个字节

热点排行