mysql数据库支持表情_mysql数据库如何支持emoji表情

mysql数据库的默认字符集utf8,只能存储3个字节的数据。标准的emoji表情是4个字节,在APP端输入保存表情是用户的普遍需求和行为。

插入数据库报错如下:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column 'raw_json' at row 1, 异常:org.springframework.jdbc.UncategorizedSQLException:

解决方式:更换字符集utf8-->utf8mb4    mb4的意思是most bytes 4,专门为兼容四个字节的。utf8mb4是向下兼容utf8的,所以即便修改了字段的字符集也不会影响线上数据。

前提:mysql大于5.5.3版本。

步骤:

1.修改字段的字符集

ALTER table mb_touchpay_record  modify  clientName  varchar(100) character set utf8mb4 collate utf8mb4_unicode_ci

2.表

ALTER table mb_touchpay_record charset=utf8mb4;

3.库

set names utf8mb4

修改后可看到字符集设置:

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

+--------------------------+--------------------+

| Variable_name | Value |

+--------------------------+--------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| collation_connection | utf8mb4_unicode_ci |

| collation_database | utf8mb4_unicode_ci |

| collation_server | utf8mb4_unicode_ci |

+--------------------------+--------------------+

rows in set (0.00 sec)

不需要重启数据库

4.如果以上步骤操作后还不能保存成功,连接数据库时设置字符集如下:

//保存备注emoji表情

Query mb4_q = dao.createSQLQuery("set names utf8mb4", null);

mb4_q.executeUpdate();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值