如何让mysql支持存储表情

言简意赅,直入正题。

我用的是mysql数据库,这里我用mysql示意,其他数据库大多一致:

mysql存储表情,需要版本支持,mysql要高于5.5.3,程序驱动包版本要高于5.1.18。

1、数据库方面:
      配置数据库、表、字段三者的字符集为utf8mb4,因为mysql的utf8不是真正意义上的utf8,它只能存储3个字节,而真正的utf8是可以存储4个字节的数据,后来为了弥补这一缺陷,mysql官方推出了utf8mb4字符集来弥补自己的缺陷。所以,这里需要将字符集改成utf8mb4来支持表情存储。

     执行sql查询字符集:

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

如果查询出来是这样:

character_set_client:utf8
character_set_connection:utf8
character_set_database:utf8
character_set_results:utf8

需要执行sql来改变字符集:

set names utf8mb4

这样就改好了:

character_set_client:utf8mb4
character_set_connection:utf8mb4
character_set_database:utf8mb4
character_set_results:utf8mb4

2、程序方面:

给配置文件中加如下配置:

spring.datasource.druid.connection-init-sqls=set names utf8mb4;

这样就可以支持表情了。

效果图我就不上了,我自己是测试通过了。

说下,我还走的一些路:看别人的帖子说还需要改mtysql的my.ini文件,需要加上

character_set_server=utf8mb4
init_connect='SET NAMES utf8'

因为我的mysql是linux版本的,加上上面配置之后,数据库反而启动报错,前三个修改后还是存储不了的可以试试。

如果还不行,可以试试在程序层面对所有的表情进行过滤,这样至少不会保存报错。

你可能感兴趣的:(Spring大家族)