mysql编码字符编码存储失败问题解决

1、问题:

最近有一个bug报错是:

 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x82\xE3\x80...'

mysql插入不了一下特殊的字符

2、分析

经过排查和查看相关文档,分析数据库的编码有关,现在数据库采用utf-8编码,可按照该编码不能存存全部的字符,mysql说明建议使用utf8mb4 编码,该编码需4个字节存储一个字符。同时只有mysql5.5+以上版本才支持utf8mb4 ,详细参见:

http://stackoverflow.com/questions/13653712/java-sql-sqlexception-incorrect-string-value-xf0-x9f-x91-xbd-xf0-x9f

http://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html

3、解决

基本思路是改变数据库表的编码为utf8mb4 

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4


你可能感兴趣的:(mysql,字符编码)