SSM框架+MySql保存emoji表情

本博客的记录的操作在linux

 

项目中需要从微信获取授权来登录,在此过程,保存微信emoji表情昵称到mysql数据库的时候出了错误。

老规矩百度一下,得知是mysql的utf8字符集只支持1-3个字节的字符,而表情则需要4个字节,所以mysql提供了一个utf8mb4字符集,在支持4个字节的同时又可以完美兼容utf8,免去我们的后顾之忧。

百度大部分的步骤是这样的,1-3步骤可以使用命令也可以使用工具(例如Navicat)来完成。

1:修改数据库字符集:

     (1) 命令方式:ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

     (2)工具方式:选中指定数据库,邮件选择数据库属性,修改字符集与排序规则如下:

              

SSM框架+MySql保存emoji表情

2:修改数据库表的字符集

    (1)命令方式: 首先切换到步骤1所操作的数据库,随后执行命令:ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    (2)工具方式: 打开数据库,选择要操作的表,右键选择设计表,选择选项,选择字符集和排序规则如下:

              

SSM框架+MySql保存emoji表情

3:修改列的字符集

    (1)命令方式: ALTER TABLE 表名 CHANGE 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

                               例:ALTER TABLE user CHANGE name TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    (2)工具方式: 选中要操作的表,右键选择设计表,选择指定字段,修改字符集和排序规则如下:

            

SSM框架+MySql保存emoji表情

4:修改my.cnf文件(windows是my.ini文件)

     编辑文件,添加以下内容:

[client] default-character-set=utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect=’SET NAMES utf8mb4' [mysql] default-character-set=utf8mb4

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsxxj.html