mysql存储表情符号Emoji报错或者乱码问号

emoji就是表情符号,来自日语词汇“絵文字”(假名为“えもじ”,读音即emoji)。

手机操作系统iOS,Android,WindowsPhone;电脑:Windows,Mac OS X均内设Emoji表情;QQ等聊天工具中也添加了emoji表情供用户使用;另外搜狗手机输入法,Google拼音等Android第三方输入法也内置此表情。


mysql存储表情符号会报错如下:
Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1


解决方法:

1、数据库,表,字段字符集改成utf8mb4。

2、mysql配置文件修改如下:

 [client] 
default-character-set = utf8mb4 
[mysql] 
default-character-set = utf8mb4 


[mysqld] 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'

注意windows下配置文件叫my.ini,如果没有这个文件就自己创建,一般默认会有一个my-default.ini文件,拷贝一下重命名就行了。

但是jdbc驱动目前不支持utf8mb4,所以连接字符集characterEncoding设置utf8mb4会报错,所以去掉即可:

jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true

你可能感兴趣的:(JavaEE)