在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:?、?、? 很容易更新或者插入不成功,导致报错。

都快崩溃了,但是还好终于解决了这种鬼问题。资料显示原因是,MYSQL 5.5 之前, UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区,而emoji图标恰好是4个字节的编码进行存储。从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,所以能支持更多的字符集。所以要解决问题,必需把数据库表字符编码全部改成utf8mb4。

常用字符集

ASCII:美国信息互换标准编码;英语和其他西欧语言;单字节编码,7位表示一个字符,共128字符。

GBK:双字节,汉字内码扩展规范;中日韩汉字、英文、数字;双字节编码;共收录了21003个汉字,GB2312的扩展。

UTF-8:Unicode标准的可变长度字符编码;Unicode标准(统一码),业界统一标准,包括世界上数十种文字的系统;

UTF-8:使用一至三个字节为每个字符编码。

utf8mb4:存储四个字节,应用场景用于存储emoji表情,因为可以emoji表情四个字节。

utf8mb4:MySQL版本 > 5.5.3 。

其他常见字符集:UTF-32,UTF-16,Big5,latin1

数据库中的字符集包含两层含义

各种文字和符号的集合,包括各国家文字、标点符号、图形符号、数字等。

字符的编码方式,即二进制数据与字符的映射规则。

系统环境

MySQL 5.7.14

Mac OSX 10.11.6

首先备份

升级数据之前备份您服务器上的所有数据,保持良好习惯,安全第一!

升级您的MySQL

修改您的数据库、表、字段

utf8mb4完全向后兼容utf8,无乱码或其他数据丢失的形式出现。理论上是可以放心修改,如果您不放心修改,您可以拿备份恢复数据,然后让程序员处理这种兼容emoji存储问题,存的时候过滤一遍转成base64,然后取的时候转回来?... 还是修改数据库比较方便。

检查你的字段和索引

不要将所有的都设置成utf8mb4,这个冒得必要。我只在我某些字段类型为VARCHAR的时候才设置成utf8mb4。

修改MySQL配置文件

这个地方最坑,我在我Mac osx 系统上找不到/etc/my.cnf 它根本不存在,所以我们需要创建这样一个文件并修改它。

重启MySQL

重启步骤很重要,不然没有任何效果。

启动:/usr/local/mysql/support-files/mysql.server start

停止:/usr/local/mysql/support-files/mysql.server stop

重启:/usr/local/mysql/support-files/mysql.server restart

系统中可以以这种形式重启、停止或启动

查看是否设置成功

通过下面命令查询是否设置成功!

到这一步表示你成功了!恭喜你!~

修复和优化表

我跑到这一步其实没有任何必要修复和优化表,为了保险起见,我还是运行了这两条命令,虽然不知道它有什么卵用,放在这里做个笔记吧。

明确的学习思路能更高效的学习

mysql图标_MySQL 支持 emoji 图标存储相关推荐

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

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

  2. mysql 字符图标 报错_MySQL支持emoji图标存储

    在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:

  3. emoji mysql 配置_MySql支持Emoji表情

    1.原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去. 2.解决方案: 将Mysql的编码从utf8转换成utf8 ...

  4. mysql 字段存放小图标_让MySQL支持emoji图标存储

    在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:

  5. mysql 表情符串_mysql支持emoji表情符存储

    一.教你如何让数据库支持emoji表情符存储 解决方式: 更换字符集utf8-->utf8mb4 问题描述: 前台应用抓取微博信息,每天总有几条数据插入不成功.应用日志显示: java.sql. ...

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

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

  7. mysql 5.6 emoji_让MySQL 5.6支持Emoji表情

    让MySQL支持Emoji表情,涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集. MySQL 版本 5.6 1 解决方案:将Mysql的编码从utf8转换成utf8mb4. ...

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

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

  9. mysql支持表情输入_mysql支持emoji表情

    最近开发的iOS项目由于须要用户文本的存储,天然就遇到了emoji等表情符号如何被mysql DB支持的问题.困扰了很多天,在就要绝望放弃的边缘,终于完成了转换和迁移.在此特别分析和整理,方便更多人. ...

最新文章

  1. python查看函数参数快捷键_Python基础知识—快捷键
  2. Geary 0.13.0 发布,GNOME 3 Email 客户端应用
  3. 判断文件是否改变php,PHP判断文件是否被修改实例
  4. 电脑与电脑之间数据是如何传输的(数据封装与解装)
  5. 通过HttpModule实现IP地址屏蔽功能
  6. 【电蜂优选科普】USB数据线接口有哪些类型呢?
  7. 华为 手机 能点开USB调试,退出重进再看还是关闭的
  8. 决策树及matlab实现
  9. ubuntu增加swap交换空间
  10. python查询12306余票_Python实现查询12306火车票信息
  11. Deep drug-target binding affinity prediction with multiple attention blocks论文解读(二)2021SC@SDUSC
  12. CEPH HEALTH错误(二):HEALTH_WARN mds cluster is degraded
  13. habor-deploy docker https 私有仓库搭建
  14. pycharm中import导入包呈现灰色问题
  15. 指令集创始人潘爱民受邀出席CCF系统软件技术论坛,探讨泛在操作系统技术发展...
  16. html输入页码跳转,如何为WordPress添加输入页码跳转功能?
  17. 有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐分成50、90克各一份?
  18. 神舟笔记本的拆机之旅
  19. 进程控制(二)——minishell延续
  20. linux 中添加kvm虚拟化,一文告诉你Linux如何配置KVM虚拟化--安装篇

热门文章

  1. LeetCode-双指针-88. 合并两个有序数组
  2. MapReduce工作流理解
  3. python虚拟环境-conda
  4. Python编程基础:第二十节 函数Function
  5. 【android-tips】关于android应用R文件无法读取
  6. 深入理解JVM文章合集
  7. 连接mongodb,kafka异步处理代码
  8. 广告点击率预测 [离线部分]
  9. 不进化,则消亡——互联网时代企业管理的十项实践
  10. linux 删除20日前数据,Linux 维护常用命令