1、问题概述?
使用富文本编辑器的时候,存储的内容中包含表情符合如:
![]()
![]()
![]()
![]()
![]()
添加的时候,数据库报错如下
### SQL: INSERT INTO article ( article_title, article_content, article_column, article_author, viewpermissions, article_createtime, article_status, wordnumber ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )
### Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x93\x9D \xE8...' for column 'article_content' at row 1
; uncategorized SQLException; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x93\x9D \xE8...' for column 'article_content' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x93\x9D \xE8...' for column 'article_content' at row 1
2、问题原因及解决办法
主要是MySQL使用的字符集问题,应该使用utf8mb4字符集,因为表情符号是4个字节,而默认的utf8只能存储3个字节的utf-8编码集。
解决办法
修改表格的编码集如下:
ALTER TABLE `表名` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
如果是创建表格,下表格的尾部添加
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
920

被折叠的 条评论
为什么被折叠?



