mysql: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x90</...'

插入数据出现问题,因为包含了特殊字符。

现象: 
插入的数据中如果含有某些特殊字符,会导致插入数据失败,例如字符串”测试**插入数据。。。“,在console中insert是正常的,但是使用java代码insert的时候报错。

 

原因:

mysql utf-8编码最多只支持三个字节,而有的unicode字符转成utf8编码之后有4个字节,所以插入失败。

 

解决方案:

修改Content字段为MEDIUMBLOB(原来是varchar),并且把SELECT语句修改成

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

INSERT语句不需要修改

 

也有说升级mysql,用utf8mb4编码

posted @ 2015-09-02 16:47  Yanyd  阅读(947)  评论(0编辑  收藏  举报