SpringBoot+mysql存储emoji表情,两步解决

2022-07-20 08:48:46

–原因:表情是4个字节的奇葩,而utf8只能存3字节数据,所以我们要改数据库、表、存表情的字段的编码为utf8mb4

----------我们从建表开始

第一步:修改字符编码 utf8 为 utf8mb4

CREATE TABLE posts (
    post VARCHAR(50) character set utf8mb4  #设置post字段为utf8mb4
) ;

#设置表posts的字符编码为utf8mb4
alter table posts convert to character set utf8mb4 collate utf8mb4_general_ci;
#设置数据库bbb的字符编码为utf8mb4
alter database bbb default character set utf8mb4 collate utf8mb4_general_ci;
#我们不妨查看一下posts表\bbb数据库的编码是否改为utf8mb4
show create table posts;
show create database bbb

听说不用改数据库为utf8mb4,没试,反正我改了
谁便看看

第二步,配置文件

1.connection-init-sql: set names utf8mb4
2.useSSL=false

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/bbb?serverTimezone=Asia/Shanghai&useSSL=false
    username: root
    password: 虽然很简单,但是保密=-=
    hikari:
      connection-init-sql: SET NAMES utf8mb4

在这里插入图片描述

测试一下:(虽然很奇怪,但他真是个笑脸😝)
在这里插入图片描述到这就解决了问题,虽然很简单,小白我可折腾了大半天,希望对你有亿点帮助。

  • 作者:筷子夹豆腐.
  • 原文链接:https://blog.csdn.net/weixin_46174854/article/details/113750585
    更新时间:2022-07-20 08:48:46