项目中,项目之前使用的utf8的编码集,但是项目测试过程中,发现需要支持emoji表情,所以考虑将utf8编码更改为utf8mb4。

emoji表情是1个字符占4个字节,而utf8编码只支持1-3个字节的字符,所以utf8编码下,如果直接存储表情,数据库存储会失败。

首先我们看下哪些地方可能需要我们修改编码:

1、库(database)的编码

2、表(table)的编码

3、字段(column)的编码

4、程序中,数据库的连接url

5、mysql的配置文件my.conf中

我们可以先查询下当前数据库的编码信息:

SHOW VARIABLES LIKE 'character_set_%'

1,我们将库的编码修改

datebase charset=utf8mb4

datebase collation=utf8mb4_unicode_ci

2,将表的编码修改

character set=utf8mb4

collation=utf8mb4_unicode_ci

3,将需要支持emoji表情字段的编码修改

Charset=utf8mb4

Collation=utf8mb4_unicode_ci

然后尝试做存储,发现目前还不行,从存储到数据库中,全是??号,然后尝试修改datasource url,将characterEncoding修改为utf8mb4,然后重新启动项目,发现启动失败,查询原因,得知,目前mysql jdbc driver还不支持utf8mb4。

然后尝试最后一步,修改mysql的配置文件my.conf

[client]

# 客户端来源数据的默认字符集

default-character-set = utf8mb4

[mysqld]

# 服务端默认字符集

character-set-server=utf8mb4

# 连接层默认字符集

collation-server=utf8mb4_unicode_ci

[mysql]

# 数据库默认字符集

default-character-set = utf8mb4

修改完毕后,记得重新启动mysql服务

/etc/init.d/mysql restart

然后进行测试,生效。

mysql 存储表情_MySQL支持存储emoji表情相关推荐

  1. mysql 图标图标_MySQL 支持 emoji 图标存储

    在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:?.?.? 很容易更新或者插入不成功,导致报错. 都快崩溃了,但是还好终于解决了这种鬼问题.资料显示原 ...

  2. qt icon如何显示gif_收集Qt支持的emoji表情-第五弹

    收集一些Qt富文本控件支持的emoji表情. 下列是关于符号主题的表情. 使用 Qt版本5.12.1 直接复制表情到Qt设计师的富文本框(QPlainTextEdit)就可以显示了. ⬇️⬅️ ⬆️⏬ ...

  3. 收集Qt支持的emoji表情-第五弹

    收集一些Qt富文本控件支持的emoji表情. 下列是关于符号主题的表情. 使用 Qt版本5.12.1 直接复制表情到Qt设计师的富文本框(QPlainTextEdit)就可以显示了. 注意:由于下列表 ...

  4. mysql 显示表情符号_mysql 支持emoji 表情字符的解决方法。

    1.utf8 字符集最多3个字符,而emoji表情字符是unicode大字符集,需要4个字节表示,所以utf8无法表示. mysql要存储emoji字符,需要设成utf8mb4字符集,意思就是utf8 ...

  5. mysql emoji表情_Mysql支持emoji表情

    教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)Mysql 支持 emoji 表情. 更多讨论或者错误提交,也请移步. 1. 前言 最近为博客添加了 ...

  6. mysql 不支持表情符号_mysql中插入emoji表情失败的原因与解决

    失败场景 用户昵称中存在emoji表情,调用jdbc往mysql数据库插入的时候抛出异常 java.sql.SQLException: Incorrect string value: '\xF0\x9 ...

  7. oracle存储emoji表情,Android自带emoji表情的使用方法详解

    什么是emoji表情 emoji表情是一种表情符号,在代码中它现在其实是一组遵循Unicode的编码,即每一个表情符号都对应了一个Unicode编码.更进一步说,emoji表情实际上是一组Unicod ...

  8. mysql 过滤微信昵称表情_微信昵称emoji表情的过滤

    前言 微信昵称现在五花八门,可以加入各种表情符号.这些符号存储到mysql数据库时存在一些问题.这里记录下我的解决方法. 问题 第一种方案:修改数据库编码,支持存储emoji表情 mysql的utf8 ...

  9. php mysql表情符号_php + mysql 存入表情 【如何转义emoji表情,让它可以存入utf8的数据库】...

    方法1:base_encode64 这种方法是可以,但是旧数据没有经过encode操作,取数据的时候如果统一进行decode的话,旧数据会丢失的. 1 方法2:urlencode 这个似乎可以,对没有 ...

最新文章

  1. zabbix使用zabbix 数据库做数据分表
  2. 安装百分之80卡住_新车买回来要不要安装发动机护板呢?装好还是不好?
  3. [C++调试笔记]初始化3种粒子数据initmaxw
  4. GDCM:DICOM文件的覆盖测试程序
  5. 究竟是什么可以比反射还快实现动态调用?| Source Generators版
  6. 牛客网-数据结构笔试题目(三)-博弈论圆圈游戏(Circle Game)(附源码)
  7. com.taobao.config.client.exception.ConfigClientException: cannot get serverlist, so exit jvm env=DEF
  8. mysql分析表_MySQL分析表有什么用
  9. Atomic包的4种类型详解
  10. filter2D函数的.depth()变量的设定
  11. 论文的中期报告怎么写?
  12. 使用逐步细化开发 DFD
  13. 如何更改oracle_sid,Oracle SID修改方式的详解
  14. vue中带参数的请求路径
  15. 超算计算机需要显卡吗,NVIDIA:中国超算性能世界第一认了 但省电我最强
  16. 微信小程序 企业微信客户服务插件【联系我】自定义样式
  17. 轻量级开源聊天解决方案喧喧发布 1.0 版本
  18. Harmonious Graph (并查集 —父亲为最大值)
  19. 东方博宜OJ——1007 - 【入门】统计大写英文字母的个数
  20. input输入框去除历史记录

热门文章

  1. Apache 不记录指定文件类型的日志——LAMP环境搭建
  2. Innodb中自增长值的列
  3. 浅谈!important对CSS的重要性
  4. VMware虚拟机中不识别移动硬盘
  5. 浏览器内容双缓冲的设想
  6. 15.Numpy之点乘、算术运算、切片、遍历和下标取值
  7. 最短路 HDU - 2544
  8. Java基础——Ajax(一)
  9. 第3章 一切基于pom
  10. XL, an extensible programming language, implements concept programming