7
回答
发送表情tomcat报错,请问怎么解决?数据库编码已经改为utf8mb4,连接字符串也改了,都不行
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

错误信息如下:

2016-06-20 10:43:55,294 ERROR com.bsteel.vs.webapp.controller.BaseController:181 - org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO vsns_topic SET `from`=?,`type`=?,`uid`=?,`videoid`='0',`lastupdate`=UNIX_TIMESTAMP(),`dateline`=UNIX_TIMESTAMP(),`totid`=?,`touid`=?,`anonymous`='0',`item`='',`item_id`='0',`channel_id`='0',`username`=?,`musicid`='0',`roottid`='0',`content`=?,`postip`=?,`post_ip_port`='64020']; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1

举报
JohnnyZz
发帖于1年前 7回/413阅
共有7个答案 最后回答: 1年前
==>3093IZVc:  2016-06-20 10:43:55,294 ERROR com.bsteel.vs.webapp.controller.BaseController:181 - org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO vsns_topic SET `from`=?,`type`=?,`uid`=?,`videoid`='0',`lastupdate`=UNIX_TIMESTAMP(),`dateline`=UNIX_TIMESTAMP(),`totid`=?,`touid`=?,`anonymous`='0',`item`='',`item_id`='0',`channel_id`='0',`username`=?,`musicid`='0',`roottid`='0',`content`=?,`postip`=?,`post_ip_port`='64020']; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1
==>3093IZVc:  2016-06-20 10:43:55,294 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
==>3093IZVc:  2016-06-20 10:43:55,295 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
==>3093IZVc:  2016-06-20 10:43:55,295 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
==>3093IZVc:  2016-06-20 10:43:55,296 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660)
==>3093IZVc:  2016-06-20 10:43:55,298 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909)
==>3093IZVc:  2016-06-20 10:43:55,298 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970)
==>3093IZVc:  2016-06-20 10:43:55,299 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980)
==>3093IZVc:  2016-06-20 10:43:55,299 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - com.bsteel.vs.dao.impl.TopicDaoImpl.saveTopic(TopicDaoImpl.java:35)
表情字段一般用 blob类型存储,查询的时候再转一下即可
--- 共有 1 条评论 ---
JohnnyZz这是重构的项目,别人用php都可以的,用java就不可以了 1年前 回复

这个错误应该是很数据库有关系。前不久刚碰到过。

https://segmentfault.com/a/1190000000616820

这个帖子整理的还算比较完整的。

很多人在使用mysql数据库的时候遇到编码问题,在mysql数据库使用时,
字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级
你需要查下你各级别字符集跟校对规则,修改成你需要的字符集及校对规则就可以了。

参考自:
MySQL的字符集和校对
顶部